Performance of Windows Phone 7 apps are often vastly different on the emulator than on the actual device. Many things - I/O, networking, libraries, floating point math etc - are even different from what we're used to for full desktop .NET apps. For instance, on some devices floating point math is much faster than integer math, unlike for desktop apps. That makes it rather hard to guess your WP7 app's performance bottlenecks, and some "optimizations" can actually slow things down on the real device.

From EQATEC now comes a code-profiler that can profile your WP7 Silverlight app on real phone hardware, as well as on the emulator. The profiler is free for single-assembly applications. You can download it now from www.eqatec.com. The profiler also does full desktop, NETCF, and Silverlight profiling.

This short video show how we profiled a few apps on an actual WP7 phone on loan from Microsoft Denmark. During our test we even found a real, unexpected bottleneck in a large WP7-app. The developer was quite surprised that the app's performance problem was in the database-layer, and was just about to start optimizing somewhere else. Lesson learned: "If you cannot measure it, you cannot improve it".