Quick Start Guide

Profiling an application in under 3 minutes

Our goal is to allow you to quickly profile an application and determine where your bottlenecks are.

1. Start by executing Netperf.UI.exe.

2. Configure the minimal set of items as seen below.

main screen

The minimum items that need to be set are

1. The Program Executable: This is the fully qualified path to the application you wish to execute.

2. Assemblies to Instrument: These are the assemblies that you wish to receive timing information about.

3. Reports: The Html report will give an overview of the timing results. If you wish to dig in deeper, or modify the xslt file to provide a different view of the data, then you would generate an xml report.

Optional Settings

1. Application parameters: Any settings that need to be passed to your application. For example, the settings that you would pass to msbuild.

2. Strong Name Public Key File: If your assemblies are signed, we will resign the assemblies with the key provided.

You are almost there

Save your settings for future use.

Click Execute and watch it go

What if you want to run the application as part of the build?

The good thing is, you saved the config file and now it can be used from the command line.

All you need to do is pull up a command window (depending on settings, you may need to run as an administrator) and perform the following action:

netperf.exe useconfig fullpathtoconfigfile.npconfig

As you can see from the window below, the application determined that the assemblies were already instrumented and then it ran the "Program Executable"

DotNet Perf Command line


If you are using mstest, nunit or any application that shadow copies the files to a location that is different than the path provided in the config file, you may be have any profiling information. The reason is, 3 assemblies are required to profile the application. You can set up your build script ot batch file to copy the following files from the netperf folder:


We are working on reducing this to one assembly in a future release.

You may also place these files in the GAC if you would like to work around the issue.