Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Hardware recommendations/limits when using WPF?

Tags:

wpf

My company is just starting to look at using WPF for migrating all of our 10 year old business applications. These applications will most of the time be running on computers that have limited/old hardware. We are now a little worried that the hardware might be too limited for using WPF.

We have installed Family.Show (http://www.vertigo.com/familyshow.aspx) on an basic older computer and that seems to run ok. But we would like know what your experiences with WPF on older hardware is? Anyone out there willing to share some experiences with us?

like image 660
tmatuschek Avatar asked Oct 27 '08 12:10

tmatuschek


People also ask

Does WPF use hardware acceleration?

A rendering tier value of 1 or 2 means that most of the graphics features of WPF will use hardware acceleration if the necessary system resources are available and have not been exhausted. This corresponds to a DirectX version that is greater than or equal to 9.0.

How does WPF render?

WPF uses vector graphics as its rendering data format. Vector graphics—which include Scalable Vector Graphics (SVG), Windows metafiles (. wmf), and TrueType fonts—store rendering data and transmit it as a list of instructions that describe how to recreate an image using graphics primitives.


2 Answers

I would add several things:

  1. The first is, as Stu said, it really depends on what you are doing. In particular, we have found a noticeable difference between WPF 2D and WPF 3D. If you are doing any WPF 3D stuff at all, your performance is highly dependent on the quality of the video card (see the Graphic Rendering Tiers link already mentioned). In particular, we released a WPF 3D feature in April of this year, and it really only worked smoothly on Tier 2 hardware.

  2. Second, I would point you to Jossef Goldberg's blog. It has a wealth of information on WPF performance related items.

  3. Third, I would grab and utilize the WPFPerf tools. They were recently updated actually. Jossef's blog post will point you in the right direction there as well.

  4. Fourth, take advantage of virtualization wherever you can.

  5. Finally, I would recommend monitoring performance all the way through the development life cycle. I think the story goes that originally the Blend team did not evaluate performance (for their first release) till closer to the end, and it made solving the problem much more difficult.

Update: There is another StackOverflow post on this subject. Just wanted to point others to it.

like image 180
cplotts Avatar answered Oct 11 '22 17:10

cplotts


WPF apps will generally run no slower than their equivalents using other technologies. In other words, performance depends on what you're doing. If you have a basic app with some simple data entry controls and a grid or two then it'll be a lot less demanding than an app that has animated custom controls with overlaid video, etc.

You should also bear in mind that you must have at least XP SP2 to install WPF, which sets a reasonable hardware baseline anyway.

In summary you should have no problems running a WPF app on older hardware as long as you are sensible with the frills. Given WPF's templated controls it's also fairly trivial to test for a basic level of client performance at runtime (see Graphics Rendering Tiers) and only enable more advanced features on suitable hardware.

like image 35
Stu Mackellar Avatar answered Oct 11 '22 18:10

Stu Mackellar