The CLRProfiler for the .Net Compact Framework, Part IV: The Call Tree View

This series of posts provides an introduction to using the CLRProfiler for the .Net Compact Framework.  In previous posts (part 1, part 2, and part 3) we’ve looked at various profiler features as we try to solve a performance problem with a sample application.  So far, we’ve learned that our performance problem is due to…


The CLRProfiler for the .Net Compact Framework, Part II: Histograms and "Show who Allocated"

Yesterday I started a series of posts on how the use the CLRProfiler for the .Net Compact Framework.  The first post contained the basic information you need to get started.  I described how to install the profiler, launch an application on the device, and collect profiling data. In order to direct the discussion, I’ve written…


The CLRProfiler for the .Net Compact Framework, Part 1: Getting Started

 Version 3.5 of the .Net Compact Framework contains a new memory profiler called the CLRProfiler.  The CLRProfiler is a great tool for looking into the details of how your application is allocating and using managed objects.  For example, the profiler allows you to look at the contents of the GC heap at any point in…


.Net Compact Framework: “Hey, what happened to the diagnostic tools?”

If you’ve installed the Beta2 version of Orcas you may have noticed that the NetCF diagnostic tools (RPM, CLRProfler, …) are missing.  Don’t worry, these haven’t been cut from Orcas, they will just be distributed via the web in a separate “power toys” pack.  A CTP of these tools is now available at: .  This CTP…


Using the .NetCF Remote Performance Monitor to find memory leaks: A real world example

A few weeks ago I posted an entry describing how to use the .Net Compact Framework Remote Performance Monitor to find managed memory leaks.  The other day I ran across a post from Rabi Satter describing how he used to tool to solve a critical leak for one of his customers.  His real world experience provides a much more…


Using the .Net Compact Framework Remote Performance Monitor to Optimize your application’s memory usage

The November issue of .Net Developers Journal includes a new article on using the Remote Performance Montior.  In the article I describe how to interpret the various memory-related counters to optimize how your Compact Framework application uses memory on the device. Thanks, Steven This posting is provided “AS IS” with no warranties, and confers no rights.


Auto-Deployment of Remote Performance Monitor Device-side Components

In my earlier post on using the .Net Compact Framework Remote Performance Monitor, I describe that you must manually copy two files (netcfrtl.dll and netcflaunch.exe) to your device before you can launch an application to receive performance statistics. Chris Tacke of recently got tired of this manual process and wrote a program you can use…


Analyzing Device Application Performance with the .Net Compact Framework Remote Performance Monitor

Service Pack 1 of the .Net Compact Framework version 2 (see includes a new utility called the .Net Compact Framework Remote Performance Monitor (RPM).  The RPM helps you diagnose performance problems in your application by providing a dynamic, graphical view of various runtime performance statistics.  The performance statistics displayed by the RPM are those…


Diagnosing Marshaling Errors using Interop Logging

In a previous post I described how the Loader Log can be used to help diagnose problems such as assembly load failures, version mismatches and so on ( ).  Another critical element of our new diagnostics feature set in Whidbey is Interop Logging. Interop logging was added in response to the huge number of questions…


Better Diagnostics in Whidbey: Loader Logging

If you’ve spent much time developing applications with version 1 of the .Net Compact Framework, you’ve likely been frustrated at times by the lack of tools to help you diagnose problems in your applications.  Even common errors, like the failure to find an assembly are hard to diagnose, much less more complex problems like memory…