Windows 8 app developers get help with improving performance

The launch of Windows 8 later this year will also signal the launch of a ton of apps made especially for the operating system's Metro interface. In a new post on the official Windows 8 app developer blog, Microsoft's David Tepper gives some advice on how Metro-based app creators can improve the performance of their software.

The highly technical post goes into a number of different tips that developers can uses to speed up performance in their Windows 8 Metro apps. Tepper states that users expect apps in Windows 8 to be very responsive to the new Metro touch screen user interface. He adds:

We invested a lot of time in the engineering teams thinking about how we can ensure the performance of Metro style apps. We have learned what we can do in the platform to deliver on fast and fluid performance and have also learned what works and what does not work in building apps that deliver great experiences.

One of those tips is reducing the amount of time between activities on a Windows 8 Metro app for a user to complete a task. That will help with a user's perception about the performance of that app. Another tip is to add some kind of progress bar when a task is activated in an app. Tepper says that can also help with how a user imagines how long an app accomplishes a task, saying, "The amount of time users are willing to wait for the work to complete is far higher because there is no uncertainty."

App profiling can also be used to gauge the responsiveness of an app. Visual Studio 11 has a app profiling tool, shown above, that developers can access to create a report that records the times for an app's various functions. Tepper gives an example of how this app profiling tool works:

A few weeks before the release of the Windows 8 Consumer Preview, I was using one of the apps and noticed that my laptop was getting hot and the fans started to turn on. Working with the owner of the app, we used profiling to identify some code paths that were causing large amounts of unnecessary CPU usage, which were then fixed. The difference was immediately noticeable, and other app scenarios (such as snapping) were also improved by the changes.

Other performance tips in the blog post include making sure a Windows 8 Metro app doesn't use much memory when it is suspended, managing the amount of memory used when the app is active and running and conseving a PC's system resources such as not running any animations, audio or video in an infinite loop.

Image via Microsoft

Report a problem with article
Previous Story

Pastebin to delete more messages from hackers

Next Story

New Skype ad campaign slams Twitter and Facebook

12 Comments

Commenting is disabled on this article.

I hope some of the WPF annoying stuff got fixed.
Like the fact it creates strong references using reflection when you bind to POCOs - if you don't know about it, you're bound to have memory leaks.

Unfortunately the XAML model here isn't taken directly from WPF, it seems to have branched off from Silverlight's XAML model / engine instead. So even less power

~Johnny said,
Unfortunately the XAML model here isn't taken directly from WPF, it seems to have branched off from Silverlight's XAML model / engine instead. So even less power

*le sigh* Let's hope it gets closer and closer to WPF. I tried doing some Silverlight work, and coming from a WPF world, it was depressing.

Skwerl said,

*le sigh* Let's hope it gets closer and closer to WPF. I tried doing some Silverlight work, and coming from a WPF world, it was depressing.

Don't worry, they made it more depressing by taking it further away from both by removing support for pixel shaders, RadialGradientBrushes, etc.

~Johnny said,

Don't worry, they made it more depressing by taking it further away from both by removing support for pixel shaders, RadialGradientBrushes, etc.

The pixel shaders were already sufficiently limited.

Windows 8 is going to run like a Shelby Cobra Mustang... but with an automatic transmission for a front end interface. 8P

excalpius said,
Windows 8 is going to run like a Shelby Cobra Mustang... but with an automatic transmission for a front end interface. 8P

What's your point?
Some of the quickest and fastest cars are automatics: top fuel dragsters, Bugatti Veyron, etc.

fasola said,
So, they're big on visual tricks that make apps FEEL faster than they actually are.

Well, if you would read the linked article then you would see the title; "The psychology of performance", straight away. This is only the first half of the article though, you should read past that then it does address some physical tips and tweaks.

The last paragraph of John's article does state these as well. To conclude; read things.

fasola said,
So, they're big on visual tricks that make apps FEEL faster than they actually are.

You can optimize only up to a certain point. Once you've reached the point where either a) you can't optimize any more or b) optimizing more costs too much, you start increasing perceived performance instead of actual performance. Both matter.

fasola said,
So, they're big on visual tricks that make apps FEEL faster than they actually are.

It doesn't matter what platform a developer develops for. If its fast then there are a lot of tricks. It takes time to load data from the local machine and even more time from the internet. You cannot speed up a network more then another platform. So you write tricks to get the data ahead of time based on what the user is doing, display a little at a time while the rest of the data loads, and even create animations to make a nice user experience and to allow some time for data to load.

Of course the app is only as good as the developer writes it. There are better ways to write code for better performance if the developer is good or aware of the better ways. You can think of writing some code as a bunch of tricks to solve a problems.

If the developer does these tricks then the user experience is better and is a win for everyone.