Dotneteers.net
All for .net, .net for all!

Windows Phone performance – Part 6 of many: Nokia Lumia 920 performance

VBandi's blog

Syndication

Subscribe

Generic Content

In this post, I’ll take a look at the performance of the Nokia Lumia 920 from a developer’s point of view. This post is part of my Windows Phone performance series.

The Nokia Lumia 920

As Nokia’s flagship Windows Phone device, the Lumia 920 is a beast. Both in size and performance, the phone is great. In fact, the very first thing I noticed as a Windows Phone 7 user (apart from the new Start Screen) was how quickly the applications launched and how well they performed.

The 920 has a screen resolution of 1280x768 (983,040 pixels). This is more than 2.5 times as many as the standard resolution of the Windows Phone 7 devices – 800x480 (384,000 pixels). Other Windows Phone 8 devices can have a resolution of 1280x720 (almost the same as the 920, but a different aspect ratio) or 800x480. The additional pixel count requires a faster CPU to render the textures and a faster GPU to move the textures around. Fortunately, both of these are taken care of with the dual-core 1.5GHz Snapdragon S4 SOC. Also, since images in your application should contain a bigger number of pixels to remain sharp, the screen pixels mean that more memory is used by the applications. Because of this, you won’t see an 1280p WIndows Phone 8 device with less than 1G RAM.

In the previous post of this series, I compared the LG Optimus 7 (a first generation WP7 device), the Nokia Lumia 800 (a second generation WP7 device) and the Lumia 610 (a low-end second generation phone). Let’s add the 920 to the mix, and see how it fares!

Application Loading / CPU performance

With Windows Phone 7, application load times were the result of two factors – the Just-In-Time Compilation of the dlls, and the calculations needed to display the first screen of your app. With the apps growing bigger as more and bigger dlls were included in the XAP, whatever you did, a lot of them had to be JIT-ted just to get the first line of your actual code executed.

Things have dramatically changed with Windows Phone 8. Thanks to the faster, dual-core processor, but most importantly, to the cloud compilation infrastructure, Silverlight apps can now start up almost as fast as the first party native apps. Cloud Compilation happens when you deploy your app into the Store, and makes 99% of the work of the Just-in-time Compiler unnecessary. With Windows Phone 7, application load times were mostly the result of the apps growing bigger as more and bigger dlls were included in the XAP. Whatever you did, a lot of them had to be JIT-ted just to get the first screen up. You can learn more details about the Cloud Compilation in the Build talk “Deep Dive into the Kernel of .NET on Windows Phone 8”.

The magic of Compile in the Cloud – rowi startup time vs the People Hub.

With the JIT compilation out of the way, let’s see how the phone deals with a lot of calculations at startup. For this, I will summon my old artificial test from the second part of this series (It’s Full of Stars!). Please click on the link to refresh your memory, I’ll wait here.

Let’s look at the numbers. The first column of the table shows how many stars (small ellipses) are drawn, and the other columns show the number of milliseconds it took to launch the application. The stars are drawn on the UI thread at startup, so this drawing delays the startup time of the app.

Number of Stars Lumia 610 Optimus 7 Lumia 800 Lumia 920
100 624 399 347 164
1000 1325 1133 846 449
2000 2106 1882 1357 711
5000 4303 4258 3007 1557
10000 8430 8348 5792 2913
15000 12401 12183 9057 4404
20000 17205   11646 5903
25000       7328
30000       8861
35000       10314
40000       11677

Here is it in a chart form:

image

As you can see, the 920 kicks the rear end of every WP7 phone – even the fastest Lumia 800 is beat by a factor of 2, despite the much larger number of pixels to deal with. Not bad!

You will also experience this difference when navigating between pages of the application. The layout and render cycle is much faster, resulting in a better navigation experience.

GPU Performance

To measure the raw CPU performance, I used the “Fill Rate Test Sample” from the MSDN article Performance Considerations in Applications for Windows Phone. This does not test things like shaders, perspective transformations, etc – but it is a good first indicator. I gradually increased the number of rectangles on the screen, which in turn increased the fill rate. As we saw in part 4 of this series, The Power of the GPU, Fill Rate is an important measurement for how much work the GPU has to do, and a high Fill Rate makes the FPS (frame per seconds) drop. Without further ado, here are the results in table and chart format:

Rectangles Fill Rate Lumia 610 FPS Lumia 800 FPS Optimus 7 FPS Lumia 920 FPS
0 0.9 59 59 50 59
1 1.05 59 59 50 59
5 1.56 59 59 50 59
10 2.19 59 59 50 59
15 2.83 59 59 48 59
20 3.47 59 59 38 59
25 4.1 54 59 34 59
30 4.74 48 59 30 59
35 5.37 45 59 26 55
40 6.01 41 59 23 50
45 6.65 38 59 21 45
50 7.28 35 59 19 42
55 7.92 32 53 17 40
60 8.56 29 49 16 36
65 9.19 28 45 15 33
70 9.83 27 43 14 31
75 10.46 25 42 14 30
80 11.1 24 40 13 29
85 11.74 22 37 12 26
90 12.37 21 34 11 25
95 13 20 33 11 24
100 13.6 19 32 10 23
105 14.28 18 30 10 22
110 14.92 17 30 9 21
120 16.19 16 27 9 20
130 17.46 15 26 8 18
140 18.73 14 24 7 17
150 20 13 23 7 16

 

image

In this test, the Lumia 800 is still better than the 920. The reason for that is the sheer number of pixels the GPU has to deal with – the 920 has 2.5 times as many pixels as the Lumia 800. On the 920, the frame rates start to drop around a fill rate of 5, while the 800 can still push pixels at 60 fps up until a fill rate of 7.5. So, what does it mean for your application? It means that as long as you have less than 5 (screen-sized) layers in your app (e.g. background picture, darkening layer, lots of text over other images, etc), you will be fine, the scrolling will not become jumpy. Frankly, it is hard to think how one would exhaust the Fill Rate of 4 in a normal Silverlight application. The low-end 610 can handle a Fill Rate of 4 easily, only the first generation devices will have problems with it.

Summary

The Lumia 920 launches apps and navigates between screens much faster, and performs as smooth as we became used to with Windows Phone – despite the much higher pixel count. Overall, applications feel much more snappier, and finally performance parity between native apps and Silverlight apps can be acheved. I expect similar performance from the other HD phones, such as the HTC 8X or the Samsung Ativ. 800x480 devices may perform even better in the Fill Rate test, but I couldn’t measure it – if I get my hands on such a phone, I will write another blog post.


Posted Dec 27 2012, 01:37 PM by vbandi
Filed under:

Comments

Dew Drop – December 27, 2012 (#1,471) | Alvin Ashcraft's Morning Dew wrote Dew Drop – December 27, 2012 (#1,471) | Alvin Ashcraft's Morning Dew
on Thu, Dec 27 2012 14:24

Pingback from  Dew Drop – December 27, 2012 (#1,471) | Alvin Ashcraft's Morning Dew

Windows Phone performance ??? Part 6 of many: Nokia Lumia 920 performance wrote Windows Phone performance ??? Part 6 of many: Nokia Lumia 920 performance
on Fri, Dec 28 2012 12:07

Pingback from  Windows Phone performance ??? Part 6 of many: Nokia Lumia 920 performance

Windows Phone performance ??? Part 6 of many: Nokia Lumia 920 performance | Answer My Query wrote Windows Phone performance ??? Part 6 of many: Nokia Lumia 920 performance | Answer My Query
on Fri, Dec 28 2012 13:16

Pingback from  Windows Phone performance ??? Part 6 of many: Nokia Lumia 920 performance | Answer My Query

buy discount viagra wrote re: Windows Phone performance – Part 6 of many: Nokia Lumia 920 performance
on Sun, Feb 3 2013 6:30

Ujr0sj Thanks a lot for the blog post.Really thank you! Fantastic.