Improve WPF performance
I have a high end PC and still WPF is not always fluent. Just compare it with QT 4.6 QML (Declarative UI) it is sooo FAST!
Come on Pete Brown, are you serious? Any undergraduate spending half an afternoon benchmarking WPF for any number of primitives all the way up the high level UI element will see the performance sucks compared to almost any other technology out there (including legacy technologies like WinForms that do not even take advantage of GPU super computing power..). Every aspect of WPF should be like greased lightening...it really is not trying to solve such as hard problem that an unskilled developer cannot animate an handful of objects on screens without an acceptable (30fps) frame rate. We are not stupid, we know the WPF stack was built during the chaos of Longhorn Vista. There are some good ideas in there but performance needs to go back to square one rewrite to get this to the level people expect from modern technology. It should be easy to get 60fps on crazy numbers of UI elements and animation...just like you can in most browsers these days.
@Prafulla: The reason why the last comment is from Sept 03 2011 is that Microsoft closed this uservoice site and everything else that related to anything regarding desktop e.g. the windows client sites.
After that they found out that the place where developers make money (which means that MS also make money) is on desktop applications so they have reopened this site.
What the purpose of reopening it is, is unknown but a new WPF version may be released.
Based on the Build sessions it however still seems like they are having very little focus on the desktop.
It is sad fact that even on higher configuration machines WPF performance is not sufficient for most of the data visualization application. Any winform charting control performs much better than wpf controls.
By the way last comment here before this one is on Sept 04 . 2011. This shows how disinterested people are in WPF. May be disappointed as well. Since no improvement in WPF from past few years and no clue of future. If so at least declare it officially as dead.
Daniel Johnson commented
Well, looks like nobody's from MS reading this stuff anymore, but just for the record:
I think it would help WPF performance quite a bit if you could speed upt he constructor of the GlyphRun class. It takes quite a long time to make one, so you pretty much have to cache them to get tolerable results. I think a lot of things would improved if this primitive were fast somehow.
Alternately, it would help if TextFormatter, FormattedText and the like did cache their own GlyphRuns intelligently; they'd need to break down the text into runs short enought to be reused.
I hope that is specific enough to be actionable.
Strip, delete and salt "MS Chrome". Does wonders.
Very funny this guy Pete Brown asking, "oh really? performance is a problem, where..?" Come one! Anyone who works with WPF knows how slow it is. Sadly the problem seems to be architectural and will never be solved. WPF will be replaced by this WinRT thing. I just wonder how Microsoft could push such a unusable and flawed technology WPF/Silverlight? Who was in charge of the team? Can they sleep at night? Just think how many resourses world wide were wasted, how big this faliure is.
This should be done! No matter how much we improve users complain about performance.
I hate it when sometimes just a few simple animations act sluggish.
This is so sad. Everybody who seriously worked with WPF knows that performance is the key issue with WPF. (no matter how much you try to work around). I really love WPF and honenstly believe this is the best framework MS has ever build. I dont understand why do treat your best inventions so badly and waste your resources on solving airspace problems and such while this is the least problem WPF has currently. Someone suggested to make it open source - i guess thats the only possiblity to get things done!
How can I Improve wpf performance????
Chris Mylonas commented
WPF 4.0 performs better but additional optimizations are required for line of business applications.
Alex Haskin commented
I would like this feature request to be taken seriously. WPF is famous for its bad performance. Sometimes I get a few small animations yet the program is not fluent. WPF team please focus on perf enhancements!
Simon Bond commented
I would like Microsoft to PLEASE seriously address WPFs choppy presentation interval issue. It was clearly documented buy this guy three years back and still plagues me today:
Media playback performance in WPF (via D3DImage/MediaElement) is entirely hopeless in its current state. We need an immediate-mode presentation option. Give us our own renderchain handle, which we could then render a video scene on, and interrupt the main wpf pipeline to have it present frames accurately beneath a regular wpf UI scene -- let WPF keep doing its own rendering at its own pace and composite ontop at it's leisure, but we absolutely need a way to present graphics outside of WPFs retained graphics model and irregular present intervals.
We could almost do this today, except you're using the X8R8G8B8 backbuffer format instead of A8R8G8B8, so there's no alpha transparency when we hook wpf's renderchain Present function, and grab its front buffer data. So we're limited to a painfully slow RenderTargetBitmap pixel copy approach, to composite wpf ontop of direct3d... all because WPF framerate (for video use) is too choppy out-of-the-box.
Han Hisa commented
The performance in ATOM cpu platform (or similiar CPU) is really bad. Please notes that MIDs and Tablets are also a big market. Without WPF with good peroformace, it's not possible for Microsoft to beat android and ipad.
I haven't found a WPF performance issue that I can't overcome in some way using WPF4, Snoop, dotTrace and the WinSDK Perf tools. I can load 100s of thousands of items into a highly styled list and have smooth scrolling and snappy perf. I've even tested it on a P4 1.6 GHz with 512MB RAM.
However, it was painful to get it to perform like this. We had to manually virtualize the item creation where we had collapsed elements, track down where UI Virtualization wasn't being used, where find where items would get created where I didn't want them to, and figure out different layout strategies. When using a declarative system, it's hard to remember or think ahead to where items will be created.
I think this suggestion would be better if it was worded like "Make it _easier_ for us to improve WPF performance."
The performance in the textbox controls are pretty bad. Try typing in a large textbox with winforms and then try it in wpf. Typing just feels "crisper" in the winforms textbox. If you hold a key down in the wpf textbox there is noticeable lag.
I cant believe this is voted so low. The perf of WPF is seriously fragile. Even coding "perfectly" the perf is dubious. WPF perf is the elephant in the room ... people pretend like "oh perf is a problem?"... just look what they did with WP7. As soon as customers could not tolerate crap perf suddenly WP7 has all these great features like render thread andimation, and better perf tools. WPF needs a dedicated perf team that work continuously from now until the product is retired. Smooth animation = improved UX = successful products
Have you used WPF4? If so, in what areas do you find performance to be an issue?