Sunday, 19 June 2011

Silverlight Debugging Tools

Here’s some of the tools I use to debug my Silverlight Out of Browser applications and track memory consumption for Silverlight applications. 
When the app starts up the user is shown the login screen.  In the background, whilst the user logs in, various xap files are being downloaded asynchronously.

Here’s how the tools look on start up of the application, note no Xap optimisation tools or minifiers have been used.

HTTP Traffic

Fiddler (free)

This tool is pretty common among all web devs and tracks HTTP traffic.  From this screenshot (tracking the startup of the application) we can see various external xap file requests are made to the localhost.

XAML and Resources

Silverlight Spy (commercial)


Memory Analysis

VMMap (free as part of SysInternals Tools Suite)

Select the process, in this case sllauncher.exe as it’s an out of browser application.

Here we can see the memory used by the application:
Heap – Native heap usage
Managed Heap – Silverlight and CLR heap memory usage
Image – Modules loaded
Stack – Silverlight and CLR stack memory usage

Visual Studio 2010 Profiling (Ultimate SKU)

Memory Profiling


CPU Profiling

WinDbg + SoS (Son of strike)

To be updated.

dotNet memory profiler (commercial)

To be updated.

CLR Profiler for Silverlight 4 and .NET 4 (free)

To be updated.

XPerf / HeapMonitor cmd –p %pid%

For native / unmanaged memory, to be updated.

Mike Cook is one of the leading authorities on Silverlight performance and someone to closely follow.

You can find his list of Silverlight best practises here:

1 comment:

  1. That's great stuff ! I love it. I love it so much, that the greedy visual-data gnome in me wants more!