This is a migrated thread and some comments may be shown as answers.

CPU Usage when Idle Due to Timer

8 Answers 463 Views
GridView
This is a migrated thread and some comments may be shown as answers.
Bill
Top achievements
Rank 1
Bill asked on 11 Jul 2014, 08:18 PM
I have observed that any application with a RadGridView consumes CPU time even when the application is idle.  Using Spy++, you can verify this and see thousands of WM_TIMER messages being posted when a RadGridView is added to an application.  I have a simple repro app.  Full XAML below.  Just comment out the RadGridView, and the behavior goes away.  You can see using Process Explorer that even when the application is idle there is CPU usage, and using Spy++ you can see the timer events being fired rapidly.  This causes a large number of context switches and slows down performance noticeably.

Framework: .Net 4.5
Telerik Version: 2014.1.331.45

<Window x:Class="GridViewTimer.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
        Title="MainWindow" Height="350" Width="525">
    <telerik:RadGridView />
</Window>

8 Answers, 1 is accepted

Sort by
0
Nick
Telerik team
answered on 16 Jul 2014, 08:29 AM
Hi Bill,

I suspect the cause of the issue is a performance optimization in the PropertyChanged handling mechanism, however I cannot be certain this is the cause. Is this all the things required to reproduce the issue?
We will try to isolate it and will think of a way to deal with this issue, however if I am right and this indeed is the timer I mentioned for the optimization, this can take a while to refactor and redesign since it might introduce breaking behavioral changes for many of our clients. 

Regards,
Nik
Telerik
 
Check out Telerik Analytics, the service which allows developers to discover app usage patterns, analyze user data, log exceptions, solve problems and profile application performance at run time. Watch the videos and start improving your app based on facts, not hunches.
 
0
Bill
Top achievements
Rank 1
answered on 16 Jul 2014, 11:31 AM
Hey Nik,
Yes just the simple app above is all that is required to repro.

-Bill
0
Gareth
Top achievements
Rank 1
answered on 16 Sep 2014, 02:55 PM
I can confirm that we too also are now experiencing this problem when we have many windows open for some of our real-time applications. Even when the windows are empty doing nothing, the CPU usage is proportional to the number of windows opened.
This is going to cause us quite a few issues if it cannot be resolved.
0
Nick
Telerik team
answered on 19 Sep 2014, 08:49 AM
Hi Gareth,

As previously stated. Changing the behavior could introduce a huge braking change, and we need to thoroughly test various scenarios before taking any action towards implementing an alternative solution. 

Thank you for the understanding. 

Regards,
Nik
Telerik
 
Check out Telerik Analytics, the service which allows developers to discover app usage patterns, analyze user data, log exceptions, solve problems and profile application performance at run time. Watch the videos and start improving your app based on facts, not hunches.
 
0
Gareth Parris
Top achievements
Rank 1
answered on 07 Oct 2014, 01:56 PM
Hi Nik, can you advise if any further analysis has been done on this by Telerik yet. It is already causing problems and we've not released to our clients yet. We need a solution in time for F1 winter testing at the end of November and don't really want to look at other solutions at this late stage.

Thanks,
Gareth.

0
Nick
Telerik team
answered on 08 Oct 2014, 09:59 AM
Hello Gareth,

There has been an optimization of the handling in our latest binaries, you can try them out to see if the problem still persist. 

The optimization we introduced is a very minor fix for some cases and might not affect your project, but for the time being this is the best we can do, without risking problems with most custom scenarios. We will continue investigating alternatives of the approach and will do our best to improve the handling procedure, however the earliest release, where we can introduce such a change, will be the ServicePack of our next official release.

Hope this makes sense.  

Regards,
Nik
Telerik
 

Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.

 
0
Maarten
Top achievements
Rank 2
answered on 05 May 2017, 04:33 PM

Hi Nik,

I'm using the 2017 Q2 release, it's more than 2.5 years later now and the problem still exists. The PropertyChangedCheckerTimer still produces a fairly high CPU load. Any plans to change this?

thanks, Maarten

0
Stefan
Telerik team
answered on 10 May 2017, 11:36 AM
Hello Maarten,

Actually, this default behavior of the control can be controlled as of Q2 2015 SP1. This can be done through the IsPropertyChangedAggregationEnabled property of RadGridView. You can check out the Degraded Performance topic for further reference.

Best Regards,
Stefan X1
Telerik by Progress
Want to extend the target reach of your WPF applications, leveraging iOS, Android, and UWP? Try UI for Xamarin, a suite of polished and feature-rich components for the Xamarin framework, which allow you to write beautiful native mobile apps using a single shared C# codebase.
Tags
GridView
Asked by
Bill
Top achievements
Rank 1
Answers by
Nick
Telerik team
Bill
Top achievements
Rank 1
Gareth
Top achievements
Rank 1
Gareth Parris
Top achievements
Rank 1
Maarten
Top achievements
Rank 2
Stefan
Telerik team
Share this question
or