Performance improvements in WPF Beta2

Just in case you haven’t noticed, Beta2 of the Windows Presentation Foundation went live on 5/23.  And since the February CTP, we’ve been doing tons of great performance work. Many scenarios, especially 3D applications & apps using 1000's of Shapes, will see significant improvements.

 

With that said, if you’re having a performance problem, don’t wait for it to ‘get better’.  Performance optimization tends to be fairly scenario dependent.  We have made many, many scenarios orders of magnitude faster.  How much faster your scenario will be depends on how much your scenario overlaps the scenarios we’ve been looking at.  If your scenario is slow, profile it and find out why.  Then let us know.  With a profile in hand, we can tell you whether or not we’ve been looking at your problem already, or if there’s something else you can do to get better perf.  Typically, both are true.

 

Without further ado, here are a few highlights of the performance work done since the February CTP:

 

-         TextBlock is 10-20% smaller, and text selection is faster

-         The Path mini-language (e.g., Data=”M10,10….”) now uses StreamGeometry internally.  See my previous posting on the startup & working-set benefits of StreamGeometry.

-         Ink rendering is significantly faster, with even more improvements being looked at post-Beta2.

-         Shape working-set has been improved by at least 56 bytes/instance.

-         Software rendering of bitmaps & gradients has improved.

-         A number of scalability improvements in shape-heavy scenarios have been checked in.  E.g., loading 50K Path’s is 40%+ faster.

-         3D lighting has been moved to the GPU, for cards supporting Shader Model 2.0.  This is huge news for many 3D apps, especially ones that use lots of specular components. I’ve seen render-bound 3D apps improve 35%+. 

- Plus, many more incremental fixes.

 

Beta2 is only the tip of the iceberg.  There is still a lot of great more work coming your way.  Want to make sure it's going to impact your scenario?  Profile it at let us know what's slowing you down!