I have seen different people looking for a dot.net profiler able to analyze their .Net Compact Framework applications. It is easy to understand why people should seek to solve issues within this arena since mobility is the trend nowadays.
In the article,
Instrumentation in the .NET Compact Framework written by Scott Holden, he mentions how important it is to provide high-performance solutions since that is the issue you address with your customer.
Moreover, the
Developing Well Performing .NET Compact Framework Applications article mentions the importance of analyzing algorithms written by developers as a performance measure:
In some cases, it will also be required to focus on parts of an application that call many functions. Therefore, a developer should know how to determine these durations for later comparisons between designs.
That is why I've decided to show you now how the
SpeedTrace dot.net profiler is able to help you to analyze algorithms also written for .Net Compact Framework since you will then be able to see calls made during execution in order to analyze design issues.
The following example uses a dot.net application which establishes a remote desktop connection via vnc. It is analyzed before the application is deployed to the PDA, since SpeedTrace does not yet offer a dot.net compact profiler at the moment.
For our analysis, we will be using the .exe file compiled by Visual Studio (also located in the debug directory).
The first step is to create a new generic project in SpeedTrace and to locate this dot.net application. We keep the default values for a quick start.
Once the application has been selected and the SpeedTrace dot.net profiler is ready to analyze it, we can activate the project and start to record it. The Smartphone application will open, so we can add the server and password information.
The application connects to the designated server. At this point we have enough information for our analysis. Let us take a snapshot without detaching our application; we may need to continue analyzing later.
The SpeedTrace dot.net profiler generates the output file and requests the type of output we want to use. In this example, I have used the 'Profiling Data only' option.
The Trace Analyzer opens and shows the Performance Summary of this dot.net application.
In this case absolute times are not representative since resources within PCs are completely different from the ones in PDAs. However, “relative times” (time contribution) can be compared to solve algorithm-related issues. Moreover, the number of calls plays an important role, too, whenever it is necessary to see whether too much processing was done; the number of calls should be equal for both platforms.
At this point, I have illustrated how the SpeedTrace dot.net profiler can also be useful under Dot.Net Compact Framework. The rest is up to you. All you need to do is apply filters and triggers in order to focus on specific parts of your dot.net applications.