Activities of "ageiter"

Ok, I have found the cause and asked a separate question.

Thank you for your support, I think we can now close the question.

Ok... hm... these are my stats:

But something is still completely unclear to me. Why do I NOT notice these delays in the admin views? (e.g. language management texts or security logs)? These are loaded very quickly, although there are many more entries there.

The most annoying thing is that the buttons in the toolbar are reloaded with every click in the grid. Why is this the situation? Permissions only need to be checked when the page is loaded.

Thank you for taking the time to do the test.

I have now installed Redis directly in Ubuntu with WSL2 (without Docker). And it's already running twice as fast. It's not perfect yet, but it's much better.

I'm looking forward to seeing how fast it runs in an Azure deployment.

Do you run Redis the same way? (Ubuntu) or are you running it in Docker?

Ok... strange... but yes, it runs smoothly in your video. Redis is really enabled? ;-)

For 4 entries in the list 823 ms instead of 61 ms is not nothing and from my point of view not usable. You can see this in the behavior of the UI (see video with the delay and the "flickering" of the buttons). The user experience suffers greatly as a result. I can still do tests to see how it looks with large lists...

With 20 items it already takes 1315 ms... I don't want to know how long you have to wait with many more items.

hi

I can't find the test project. Can you share it again? I will test it again.

Thanks.

Sure, I send you an email.

The following is also interesting: I apparently ONLY have delays with the lists generated with the ABP Suite. There are no such delays with those from the admin area (e.g. audit protocols).

But your test was with an EMPTY list! That is not representative. I don't have any problems or delays with an empty list.

Have you seen my screencast? This delay is not normal and I can't imagine where it's coming from. It's not only the loading of the data GetRaumkategorienAsync() that takes a long time, but InvokeAsync(StateHasChanged); that causes this delay. Why is that?

For 4 entries in the list 823 ms instead of 61 ms is not nothing and from my point of view not usable. You can see this in the behavior of the UI (see video with the delay and the "flickering" of the buttons). The user experience suffers greatly as a result. I can still do tests to see how it looks with large lists...

hi

Can you share your test project? liming.ma@volosoft.com

You already have it ;-) Should I send you the link again or can you find my e-mail? Last time (two months ago) you did the test with an empty list. Please enter a few entries this time so that you have a meaningful result.

Hi @maliming,

I finally have some time to take care of a more detailed analysis.

My test scenario:

  • ABP 8.0.4, entities generated with ABP Suite
  • The tested list "Raumkategorien" is purely generated code ( except the stopwatch)
  • The list has only 4 entries (so the amount of data cannot be the problem)
  • I do the test with an already loaded page. I sort by one column... that's all.

Extract from class Raumkategorien.razor.cs (to understand the log):

        private async Task OnDataGridReadAsync(DataGridReadDataEventArgs<RaumkategorieWithNavigationPropertiesDto> e)
        {
            var stopwatch = new Stopwatch();
            stopwatch.Start();
            Logger.Log(LogLevel.Debug, "STOPWATCH: OnDataGridReadAsync started");

            CurrentSorting = e.Columns
                .Where(c => c.SortDirection != SortDirection.Default)
                .Select(c => c.Field + (c.SortDirection == SortDirection.Descending ? " DESC" : ""))
                .JoinAsString(",");
            CurrentPage = e.Page;
            await GetRaumkategorienAsync();
            await InvokeAsync(StateHasChanged);
            
            stopwatch.Stop();
            Logger.Log(LogLevel.Debug, "STOPWATCH: OnDataGridReadAsync executed in {ElapsedMilliseconds}ms", stopwatch.ElapsedMilliseconds);
        }
        
        private async Task GetRaumkategorienAsync()
        {
            var stopwatch = new Stopwatch();
            stopwatch.Start();
            Logger.Log(LogLevel.Debug, "STOPWATCH: GetRaumkategorienAsync started");

            Filter.MaxResultCount = PageSize;
            Filter.SkipCount = (CurrentPage - 1) * PageSize;
            Filter.Sorting = CurrentSorting;

            var result = await RaumkategorienAppService.GetListAsync(Filter);
            RaumkategorieList = result.Items;
            TotalCount = (int)result.TotalCount;
            
            stopwatch.Stop();
            Logger.Log(LogLevel.Debug, "STOPWATCH: GetRaumkategorienAsync executed in {ElapsedMilliseconds}ms", stopwatch.ElapsedMilliseconds);
        }

Screenshot of the log:

Screencast without Redis

Screencast with Redis

In the screencast WITH Redis you can also see that the buttons are re-rendered etc. Maybe this will put us on the right track...

It works. Thank you very much @liangshiwei!

Showing 141 to 150 of 271 entries
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.1.0-preview. Updated on December 17, 2025, 07:08
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.