Performance Issue in WPF

Performance Issue in WPF

Old forum URL: forums.lhotka.net/forums/t/4574.aspx


neerajdev posted on Friday, March 28, 2008

I have WPF application that performs scrolling of three xaml controls in circular manner.

If I use simple control without much styles or instead use a simple image in the element, then scrolling goes fine and application performance is good.

However, if I load the control with heavy WPF styles,then at very high resolution say (1400 * 900) systems, scrolling gets jerky and CPU usage increases.The problem exists with machines with low graphic card.

I studied this and found that WPF can take advantage of hardware rendering pipeline but couldn't find any working example.

Is there some way in WPF by which we can use heavy styled xaml controls with good performance on  PCs with UMA graphic card?

Paul Czywczynski replied on Friday, March 28, 2008

Hi, this isn't the appropriate forum site for this kind of question. You'll have better luck at http://forums.microsoft.com/msdn/showforum.aspx?forumid=119&siteid=1

In regard to your question, you really can't force WPF to perform better on a low-end graphic cards. It is up to you to recognize the limitations of the machine by checking the rendering tier and code your WPF styles and animations appropriately.

Here are a couple of good starting points:

http://msdn2.microsoft.com/en-us/library/ms742196.aspx

http://msdn2.microsoft.com/en-us/library/bb613578.aspx

ERodewald replied on Friday, March 28, 2008

It is worth mentioning that any BitmapEffect you apply will immediately force it to be rendered by software.  They are inherently inefficient, and are supposedly going to be "replaced" by a shader model language in 3.5 SP1. 

Perhaps load up Perforator and see what kind of performance you're getting -- maybe you can pinpoint what exactly is causing the slowdowns. 

Edit:
Thought about this a bit more.  I am assuming your listbox *unstyled* works fine, but styled with a ControlTemplate it does not?  If you didn't set it to use virtualization it will slow down to a halt because it is drawing all of the elements simultaneously, regardless of whether or not you are seeing them.

neerajdev replied on Tuesday, April 01, 2008

Thanks for the reply.

I have already lowered the Bitmap effect and applied the caching still in need more performance, can you suggest something ?

Can i somehow further reduce the rendering quality while doing doing some particular task?

Thanks

ERodewald replied on Tuesday, April 01, 2008

Everything you need to know about optimizing your WPF app is here: http://msdn2.microsoft.com/en-us/library/aa970683.aspx

Eric

Copyright (c) Marimer LLC