views:

855

answers:

4

The only thing I've found is EQATEC Profiler. Are there any other profilers out there that can be used to profile .NET CF apps?

+7  A: 

There's the built-in CLRProfiler: The CLRProfiler for the .Net Compact Framework (Version 3.5 of the .NET Framework): your question doesn't state which version you are targeting. It's part of the Power Toys for .NET Compact Framework 3.5

There is also the .NET Compact Framework Remote Performance Monitor:

The .NET Compact Framework Remote Performance Monitor is an analysis tool that is included with the .NET Compact Framework version 2.0 Service Pack 1. This tool provides a user interface that lets you view performance data on the fly. When you start your application from Remote Performance Monitor, the tool will read statistical data for the .NET Compact Framework performance counters directly from the common language runtime (CLR).

You can also view .NET Compact Framework performance data by using the Windows desktop tool, PerfMon.exe. You can use these tools together for a live, graphical view of the performance counter data generated by the CLR.

Remote Performance Monitor enables you to do the following:

  • View performance counter data while an application is running.

  • View performance counter data in a graphical format in PerfMon.exe while an application is running.

  • Enable the generation of .stat files to duplicate behavior supported in earlier versions of the .NET Compact Framework. When you use this feature, any .stat file is written to disk when the application exits. For more information, see How to: Generate Performance Statistics.

  • View previously generated .stat files that were created in the .NET Compact Framework version 2.0.

  • Enable and disable logging.

Mitch Wheat
There is a blog post series on using it here: http://blogs.msdn.com/stevenpr/archive/2008/05/08/the-clr-profiler-for-the-net-compact-framework-series-index.aspx
Fredrik Mörk
@Fredrik Mörk: that's what I linked to in my post, but thanks.
Mitch Wheat
CLRProfiler is focused more on memory issues then application performance.
Vadmyst
@Vadmyst: that's true. Memory bottlenecks are often a bigger concern on mobile devices.
Mitch Wheat
@Mitch: my bad; I pointed at your link but misread it as pointing somewhere else. Should have clicked on it, I guess (being lazy is not a good thing, right?).
Fredrik Mörk
+3  A: 

From my experiences of looking a while back the EQATEC profiler was the only "minimum effort" profiling option kicking around. It becomes more suitable for proper performance testing if you use the "clear snapshot" command after the code you're interested in has been JITed and if you use the mechanism of producing files you can parse them yourself to gain a: Min, Max, Average output.

Obviously that then becomes more effort than "minimum effort" though! :D

Quibblesome
I just checked your page. I think you meant "gouge"? Here I thought everybody in the UK could spell better than everybody in the US :)
Mike Dunlavey
Oh my word, how terribly embarrassing. Thank you for the catch! :)
Quibblesome
A: 

Can you run it under a debugger? Can you manually interrupt (pause) it? If so, then this works.

ADDED: It works on multi-threaded apps if you can take stackshots of threads, and it works no matter how large the application is. (It appears to work better on larger apps because they tend to have more problems to find.)

Mike Dunlavey
Did you try that technique on large multi-threaded applications?
Vadmyst
@Vadmyst: Yeah, that's answered above.
Mike Dunlavey
... BTW, I tried to surf to your blog, and IE froze. I trust there's nothing mean on there?
Mike Dunlavey
@Mike Dunlavey: Nope, blog is just fine. My IE opens it without problems.
Vadmyst
@Vadmyst: I guess my machine's getting old (like me).
Mike Dunlavey
+1  A: 

Try dotTrace from JetBrains. Here is the howto for CF applications profiling http://confluence.jetbrains.net/display/NetProf/How+to+profile+.NET+Compact+Framework+applications

Ivan Shakhov
I'll give that a try - thanks
Vadmyst