Tag Archives: performance

Analyze the performance of your JavaScript Windows Store app

Applications published in the Windows Store must be fast and fluid, otherwise they won’t pass the certification because of the following requirement:

3.8 Your app must meet the basic performance criteria on a low-power computer
The app must launch in 5 seconds or less
The app must suspend in 2 seconds or less

Unfortunately the Windows Application Certification Kit is not enough the thoroughly test this requirement, because that tool runs only a few performance test. To test your JavaScript app, you can use the Performance Analyzer for HTML5 Apps tool from the Windows 8 SDK. After you install Visual Studio, this tool will be installed as well, but it won’t appear on the Start screen, so you have to start appperfanalyzer_js.exe manually from the C:\Program Files\Windows Kits\8.0\bin\<platform>\AppPerfAnalyzer folder.

This is the beautiful (?), modern (?) UI of the app (to get the full experience, click the image to see it in the original size):

appperf-start

Use the Please select an app to analyze to select your (or Microsoft’s Mosolygó arc) app, then click Let’s get started to start the analysis. By clicking the Advanced button, you can customize which tests you want to run:

appperf-advanced

The tool guides you through an 8-step wizard, giving you detailed instructions in every step:

appperf-step

You should take the given times seriously, otherwise the Analyzer won’t be able to collect enough data to analyze your app. The result is a HTML report with numbers and charts, which you can find in the C:\Users\<username>\AppData\Local\Microsoft\HTML5AppAnalyzer\Traces folder.

The following features of your app are analyzed:

  • Activation time
  • UI responsivemess
  • Layout passes
  • Synchronous XMLHttpRequest on UI thread
  • Image scaling
  • Memory footprint
  • Runtimer broker memory reference set
  • Memory leaks
  • Idle state CPU usage
  • Successful suspend
  • Memory reduction when suspended
  • App memory growth
  • Runtime broker memory growth

By using the HTML5 App Analyzer, you can learn a lot about the performance of your app, so you can occasionally run his tool regardless of the certification process. You can find performance best practices for JavaScript Windows Store apps here: http://msdn.microsoft.com/en-us/library/windows/apps/hh465194.aspx