Tech Off Thread

4 posts

Forum Read Only

This forum has been made read only by the site admins. No new threads or comments can be added.

WPF (Avalon) & Performance

Back to Forum: Tech Off
  • User profile image
    Lord Holtzer


    First post here on Channel9, so allow me to take some space and congratulate the Channel9 tem at doing an excellent job. Over the past year, you've given me a wonderfull porthole into the world of software, and more than once encouraged me to work harder at becoming a better developer. Keep on with the great job!

    Now, one of the things that have been literally keeping me up at nights is WPF (formerly known...). This great step to remove many of the current limits in UI creation is as exciting to me as the move from DOS to Win95 (Windows 3.11 and earlier versions just didn't do much for me), which pretty much made me the GUI and UX addict I am today.

    As a developer, I've learned that everything comes with a cost, and I'm talking about the cost in user-experience. Add a new feature, which will enhance the abilities for your application, but it'll cost you with a more complicated app. Add better presentation, and it'll cost you with poor performance - once the end user installs it on his (usually very) poor client machine.
    A good example to what I'm talking about is something I did a while ago: I've developed a web-based application that was rendering graphs on the client's side using VML. The process itself was pretty cool, since I was using XSLT to generate the required VML code, but as soon as I've installed it on an end-user machine, I was able to see how hard it was for IE to handle all the elements that were created as part of the graph (a couple of thousands and more).

    This has led me to start thinking of WPF as similar to an all-around VML - which now (finally) brings me to my question:
    Given the fact that applications end up running on machines that are in the range of 1-2 years old and without a graphics accelerator, and since WinFX will run on Windows XP as well as Vista, what kind of performance will I get from running a typical WPF app, like the ones shown in the recent demos?

    I have already seen code samples for getting the 'Visual count' for my interface, and I'm very concerned from the thought that I'll end up working against such a count whenever I'm trying to achieve a great UI. Will I end up waiting another 5 years before my customer upgrades his clients, just so I could use this great technology?

    What are your thoughts on this? 
    Has any of you had already reached such a point, where there's a tradeoff between great UI and great performance, using WPF?

    - Matan -

  • User profile image

    The WPF that is available today has yet had a focus on performance yet, from now until v1 is released that will be one of their primary focuses.  So yes, if your WPF apps of today run slow then you should report what is running slow with as much detail as possible so they can add it to their list.  The best way to report any bugs is through the new MSDN Vista Forums or the WPF newsgroups.

    Now as far as performance in the architecture this is a very big consideration.  WPF is built upon DirectX not GDI or GDI+.  When possible the rendering is handed off to the GPU of your video card, other wise it will run in software mode.  Another bonus is that rendering is actually handed in a seperate thread from the UI thread.  This allows for the rendering to happen in unmanaged (faster) code.

    From what I've seen this week at the PDC, performance is huge priority for the team.  So yes, they definitely are talking about it and were asked many questions about the subject.  Its purpose is not to replace a straight DirectX platform for developing FPS Games, but it'll be fast.

  • User profile image
    Lord Holtzer

    Thanks Adam.

    As a matter of fact, it's not that I'm having any particular perfomance problems right now, it's just that I'm anticipating these problems to rise once we try to deploy our WPF-aware apps on the current generation of client machines. I'm talking about an average of P4 1.7Ghz , with about 256MB of RAM, using a previous-generation on-board graphics card with 32MB of shared memory.

    Since I don't expect a company with about 500 PC's to start upgrading right away, my main concern is: should I even bother with learning all those new & cool features right now, or wait until it'll be more likely that I'll be able to deploy them.

    I'm not a veteran when it comes to new technologies being assimilated by end-users - I've been developing for the commercial market for only for the last 3 years. So, I was hoping for some insights from more experienced developers on that matter.

    * A note for the admins: this is turning out to be more appropriate for 'The Coffeehouse' forum - if possible, please move it.

  • User profile image

    Lord Holtzer wrote:

    * A note for the admins: this is turning out to be more appropriate for 'The Coffeehouse' forum - if possible, please move it.

    Nah, let's keep it here. I just posted a question about performance here... I'm pretty certain it's an issue on my end. But if it's a driver or compatibility issue or something, this just might be a good place to discuss Smiley

Conversation locked

This conversation has been locked by the site admins. No new comments can be made.