BusyIndicator CPU usage

18 posts, 1 answers
  1. Daní
    Daní avatar
    303 posts
    Member since:
    Feb 2008

    Posted 06 Apr 2011 Link to this post

    Hello,

    I've detected an strange issue/bug that i'm quite sure it's related to BusyIndicator. My applications uses several BusyIndicators to notify user whenever a remote acces is done. After all data is loaded, with no action performed by the user I can see in task manager that iexplorer process hosting the silverlight application consumes a bit of cpu. Application is doing nothing!!! I've run a perfomance profiler that tells me that application is doing nothing and is consuming 0% of cpu, however I can see in task manager that application is consuming 1-2% of cpu (my PC is a quad core i7 processor, on older PCs, cpu consumption may arrive at 10-15%). Removing all BusyIndicators, no cpu usage is shown in task manager when nothing is done.

    You can see this same behavior in your silverlight demo application. Just navigate to BusyIndicator/FirsLook example. Initially this example show an empty scheduler, in this situation, the application's cpu usage is 0%. Then, click to "Load Appointments" button, a, normal, cpu usage peak is shown in task manager when appointments are retrieved, but after an interval you will observe that application is consuming permanently cpu (1%) in my case.
  2. Daní
    Daní avatar
    303 posts
    Member since:
    Feb 2008

    Posted 08 Apr 2011 Link to this post

    Hello,

    I need to confirm there's a bug in BusyIndicator and if it exists an easy solution or workaround to decide continuing using BusyIndicator!!!!

    Thanks.
  3. DevCraft banner
  4. Daní
    Daní avatar
    303 posts
    Member since:
    Feb 2008

    Posted 12 Apr 2011 Link to this post

    Hello,

    I need a response to decide what to do with BusyIndicator!!!
  5. Teodor
    Admin
    Teodor avatar
    501 posts

    Posted 12 Apr 2011 Link to this post

    Hello Daní,

    Thank you for your feedback and please accept our apologies on the delay of our response.

    Currently, we are investigating the issue with the busy indicator. Indeed, there is some CPU load on the demo application while being idle. This, however, does not automatically mean that the RadBusyIndicator is causing the load because the demo application is a complex one and contains other parts that may introduce delays.

    What is interesting, we did not manage to reproduce the same in a simple project scenario (please see it attached). While visible the RadBusyIndicator inside generates about 1% of CPU usage (Core2Quad), however, when IsBusy is false - the CPU reduces to 0 again. 

    Having said that can you please try to reproduce the cpu usage issue in the attached project and let us know about the result? Alternatively, you may open a new support ticket and attach your project there so that we can investigate it and come up with some workaround.

    Hope this explains the matter. We will be glad to assist you further.

    All the best,
    Teodor
    the Telerik team
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
  6. Daní
    Daní avatar
    303 posts
    Member since:
    Feb 2008

    Posted 12 Apr 2011 Link to this post

    Hi Teodor,

    Thanks for your interest.

    I've tried your demo application and could'n reproduce the issue. As you explain, it seems is working fine in this scenario. However, as I commented in the first post, I ran a perfomance profiling test (with read gate tool) and while process was consuming cpu, test didn't register any noticeable silverlight code activity (less than 0,1 ms during more tahn 30 seconds). Also, removing RadBusyIndicators from my views seems to solve the problem. In addition, I've tried to remove the BusyIndicator in telerik's demo solution for the BusyIndicator/FirstLook example, and again this solved the problem.

    Maybe the issue is related to the container where BusyIndicator is in.

    I'm near to my release date, and I need a solution for this issue, please pay attention at this issue so I can decide to keep using BusyIndicator or look for an alternative solution.
  7. Answer
    Teodor
    Admin
    Teodor avatar
    501 posts

    Posted 12 Apr 2011 Link to this post

    Hello Daní,

    We have identified the source of the issue - it is the animation of the progress bar inside RadBusyIndicator's template - despite its Visibility becomes Collapsed when IsBusy is false, the Storyboard of the circle goes on forever and this causes a little CPU usage.

    This is already on our tasks list and will be fixed with some of our future releases, but until then you can use the following workaround:

    <telerik:RadBusyIndicator IsIndeterminate="{Binding IsBusy, RelativeSource={RelativeSource Self}}" />

    What the above does is set the IsIndeterminate property of the ProgressBar inside RadBusyIndicator to false (whenever not busy), so that its visual state changes and the animation stops. This should eliminate the issue with CPU usage when idle.

    Hope this helps. Let us know in case you need further assistance.


    Best wishes,
    Teodor
    the Telerik team
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
  8. Daní
    Daní avatar
    303 posts
    Member since:
    Feb 2008

    Posted 12 Apr 2011 Link to this post

    Hi Teodor,

    Thanks for your help!!!! Is working fine with your solution. I thought the issue was related to a DropShadowEffect in BusyIndicator, but watching its template I suspected the IsIndeterminate could be the matter, but like you, I created a simple scenario and I couldn't reproduce the issue! What I do not understand is why in a simple scenario this issue does not appear.

    Thanks again!!
  9. Teodor
    Admin
    Teodor avatar
    501 posts

    Posted 13 Apr 2011 Link to this post

    Hello Daní,

    We are glad the workaround is acceptable to the moment.

    The truth with the simple example scenario, actually, is that the CPU still does some work. However the consumption is less than 1% CPU time and thus the Windows Task Manager does not report it as activity. Looking at it through a profiling application is the only way to notice that there is some load on the CPU. Still, the workaround fixes the matter for the moment.

    Hope this explains the matter. We will be glad to assist you further.

    Greetings,
    Teodor
    the Telerik team
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
  10. Jaime Bula
    Jaime Bula avatar
    41 posts
    Member since:
    Apr 2009

    Posted 24 Oct 2011 Link to this post

    Hi,

    The suggested fix actually works, but I'm using controls 2011.2.920.1040, and the issue is still there and it was crippling our application. Is there a time frame for this to get fixed?

    Best Regards,

    Jaime Luis Bula P.
  11. Dani
    Admin
    Dani avatar
    848 posts

    Posted 26 Oct 2011 Link to this post

    Hello Jaime,

    I am sorry to hear you experienced difficulties with your application due to this issue. The issue will be fixed for the Q3 2011 release.

    Greetings,
    Dani
    the Telerik team
    Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>
  12. Ziev
    Ziev avatar
    10 posts
    Member since:
    Oct 2011

    Posted 06 Feb 2012 Link to this post

    Hi there,

    I've just upgraded to the Q3 2011 version (using the wizard) but the problem does not seem to be solved. The CPU still works more and more as I load more busy indicators even though they are all set to IsBusy=false after the operation is done.

    Please ensure that the fix was applied correctly.
    Thanks,
    Ziev
  13. Daní
    Daní avatar
    303 posts
    Member since:
    Feb 2008

    Posted 06 Feb 2012 Link to this post

    Hi Jaime,

    I solved the issue setting a default style. If you have upgraded to SLV5, you can try to add the following xaml at your App.xaml file to set a default style for the RadBusyIndicator. It worked fine for me:

    <Style TargetType="telerik:RadBusyIndicator">
            <Setter Value="{Binding Path=IsBusy, RelativeSource={RelativeSource Self}}" Property="IsIndeterminate"/>
     </Style>

    I you still are on Silverlight 4, you can't use Binding on style setter's. I have an implementation for style databinding that allows setting bindings on style setters in Slv3, Slv4. I can share the code with you if you are interested on.
  14. Ken
    Ken avatar
    104 posts
    Member since:
    Aug 2010

    Posted 13 Feb 2012 Link to this post

    FYI: this also causes a memory leak at least of the view, and if the IsBusy property is bound to the viewmodel then also of the viewmodel. Reproducible in version 2011.3.1220.1040.

    Fortunately the fix with IsIndeterminate works and fixes also the memory leak. I don't know if it's already included in later releases, but if not, it definitely should be.
  15. Paolo
    Paolo avatar
    423 posts
    Member since:
    Jun 2009

    Posted 26 Mar 2012 Link to this post

    Hello,
    just to inform you I had to specify this on Q1 2012 for WPF... I had a 5% on an I7... setting the indeterminate everything is ok...
  16. Marcel
    Marcel avatar
    21 posts
    Member since:
    Jul 2011

    Posted 05 Dec 2013 Link to this post

    I'm developing a WPF application where I make heavy use of the Telerik RadProgressBar (RadControls for WPF Q3 2013, 2013.3.1016.40) in indeterminate mode (the win 8 theme looks really cool, by the way). I'm developing on a machine with an i7 (but only 4 cores) and from the point that there are more than 8-10  instances of the RadProgressBar with "IsIndeterminate=True", one of the 4 cores is completely in use by the application even if all RadProgressBars are collapsed and the application is completely idle (but displayed). The issue seems to be fixed for the Busy Indicator but obviously not for the RadProgressBar...

    Marcel
  17. Tina Stancheva
    Admin
    Tina Stancheva avatar
    3298 posts

    Posted 10 Dec 2013 Link to this post

    Hi Dani,

    Unfortunately this is a known issue and is such it is logged in our feedback portal where you can check its status. Please accept our apology for the inconvenience.

    Regards,
    Tina Stancheva
    Telerik
    TRY TELERIK'S NEWEST PRODUCT - EQATEC APPLICATION ANALYTICS for SILVERLIGHT.
    Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
    Sign up for Free application insights >>
  18. Paolo
    Paolo avatar
    423 posts
    Member since:
    Jun 2009

    Posted 17 Jun 2014 in reply to Tina Stancheva Link to this post

    Ex use me I know it's an old post...has this been fixed or I've still to set the self reference?
    thx
  19. Martin
    Admin
    Martin avatar
    1099 posts

    Posted 19 Jun 2014 Link to this post

    Hi Paolo,

    Currently this issue is not fixed, but you you can track its status by following the bug report item in our feedback portal. By doing this you will be notified when we change its status.

    As a workaround you can set the IsIndetermineted property of the RadProgressBar to false when it is collapsed.

    Regards,
    Martin
    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.
     
Back to Top
DevCraft banner