How to profile a silverlight application?
-
09-06-2019 - |
Question
Is their any profilers that support Silverlight? I have tried ANTS (Version 3.1) without any success? Does version 4 support it? Any other products I can try?
Updated since the release of Silverlight 4, it is now possible to do full profiling on SL applications... check out this article on the topic
At PDC, I announced that Silverlight 4 came with the new CoreCLR capability of being profile-able by the VS2010 profilers: this means that for the first time, we give you the power to profile the managed and native code (user or platform) used by a Silverlight application. woohoo. kudos to the CLR team.
Sidenote: From silverlight 1-3, one could only use things like xperf (see XPerf: A CPU Sampler for Silverlight) which is very powerful to see the layout/text/media/gfx/etc pipelines, but only gives the native callstack.)
From SilverLite (PDC video, TechEd Iceland, VS2010, profiling, Silverlight 4)
Solution
Install XPerf and xperfview as available here: http://msdn.microsoft.com/en-us/library/cc305218.aspx
(1) Startup your sample
(2) xperf -on base
(3) wait for a bit
(4) xperf –d myprofile.etl
(5) when this is done, set your symbol path:
set _NT_SYMBOL_PATH= srvC:\symbolshttp://msdl.microsoft.com/downloads/symbols
(6) xperfview myprofile.etl
(7) Trace -> Load Symbols
- Select the area of the CPU graph that you want to see
- Right-click and select Summary Table
(8) Accept the EULA for using symbols, expand IExplore, expand agcore.dll or whatever is your top module
OTHER TIPS
Visual Studio 2010 (with the Silverlight 4 tools) comes with command line support for profiling Silverlight apps.
Full instructions for profiling SL4 can be found at: http://www.nachmore.com/2010/profiling-silverlight-4-with-visual-studio-2010/
Try JetBrains dotTrace performance profiler. Here is the detail how to: http://confluence.jetbrains.net/display/NetProf/How+to+profile+silverlight+application
AtoLogic SilverProfiler should work for you. See http://www.atologic.com
SL 4.0 has coreclr etw events. Should be able to diagnose exception,gc, threading and few others using the XPERF and Perfmonitor and clr etw. I have blogged about this.
FYI using Perfmonitor should be able to provide call-stacks.
ETW is available only in Windows.
I like RedGate ANTS. I find it to be a much nicer profiler than dotTrace.