.NET Memory Profiler 5.0 Beta

SciTech Software is pleased to announce the first beta of .NET Memory Profiler 5.0. The major new features of .NET Memory Profiler 5.0 are:

Enterprise edition

.NET Memory Profiler 5.0 comes with a new edition, the Enterprise edition. Several of the new features will only be available in the Enterprise edition, such as the Visual Studio test runner, remote profiling, Azure compute emulator profiling, and multiple process profiling.

Licensed users of .NET Memory Memory Profiler 4.6 Professional, with an active subscription, will have access to all Enterprise edition features in the beta. Once the full version of .NET Memory Profiler 5.0 is released, there will be a possibility to upgrade from the Standard and Professional editions to the Enterprise edition.

New WPF based user interface

The .NET Memory Profiler user interface has been converted to WPF, with a more modern look and an improved user experience.

Easily run unit tests under the profiler using the Visual Studio test runner

By using the "Run unit tests under profiler" command, you can now easily run your unit tests under the profiler. For more information, see the demo below.

Profiler unit tests demo
Click on image to play demo.

Remote profiling

Remote profiling allows you to use a development computer to profile a process running on a computer where you do not want to or cannot install the full profiler. The NmpCore tool is used on the remote computer to provide remote profiling access to the computer. The new command line argument "/remoteagent" (short form "/ra") is used to enable remote profiling. For instance by using the command:

NmpCore /ra

By default the port 35650 is used for remote profiling. This can be overridden by using the argument "/remoteagentport" (short form /rap"). For example:

NmpCore /ra /rap:25000

The demo below shows how to start a remote profiling session.

Type and Filter details instances graph demo
Click on image to play demo.

You can use the link in the side-bar to download version 5.0 of NmpCore, which is required for remote profiling.

Profile multiple processes within the same session

In the Enterprise of .NET Memory Profiler, the profiler will by default profile all child processes that are created by the profiled process. This simplies profiling of processes that are started using a .NET implemented launcher process. It is possible to profile all startup projects in a Visual Studio solution, within the same profiling session.

Work with multiple sessions in the standalone profiler

It is now possible to work with more than one session in the standalone profiler as well. Each session is represented by a tabbed document similar to when running under Visual Studio.

Improved real-time presentation

The real-time view has been redesigned. Both graphical and numerical data is presented in the same view, and it is possible to use the time-selector to show numerical data at a specific time in an active session as well.

New real-time view

Support for snapshots that are larger than 4 GB

It is now possible to collect snapshots with instance data that is greater than 4 GB. This is only available when running the standalone profiler on a 64-bit OS. Due to overhead in the profiler, it is recommended that a machine with at least 32 GB of memory is used when collecting snapshots larger than 4 GB.

Known issues

This is a beta, so there can be bugs that can cause the profiler to crash.

.NET Memory Profiler 5.0 requires .NET Framework 4.0 or later to be installed. If using .NET Framework 4.0, .NET Framework update KB2468871 must also be installed. In the final release, the installer will install the required prerequisites, i.e. .NET Framework 4.5 or .NET Framework 4.0 with KB2468871.

NmpCore 5.0 requires .NET Framework 3.0 or later to be installed.

If you have any comments, error reports, or suggestions related to .NET Memory Profiler 5.0, please send an e-mail to memprofiler@scitech.se

Beta release notes

Below is a summary of additions and changes to .NET Memory Profiler 5.0 beta:

Version 5.0.58, released March 4, 2015

  • New: Added the possibility to use DirectX when rendering the real-time graph.
    The option "Enable DirectX rendering in real-time view" has been added. DirectX rendering will give faster and higher quality graph rendering, but currently it has to be explicitly enabled.
  • Fix: Fixed an error in the arguments parser that could prevent automatic start of profiling using command line arguments.
  • Fix: A few minor UI improvements and fixes.

Version 5.0.57, released February 25, 2015

  • New: Support for Visual Studio 2015 and .NET Framework 4.6.
  • New: Azure compute profiling added.
    If an Azure project is selected as the startup project in Visual Studio, the profiler will profile the compute emulator and related processes.
  • Change: Improved time selector in real-time graph.
  • Change: Remote profiling improvements.
  • Fix: Reachable instances are detected when importing a memory dump.
  • New: Snapshot markers and GC marker included in real-time graph.
  • Fix: Several other minor and major bug fixes.

Version 5.0.39, released January 30, 2015

  • New: Improved instance field data collection.
  • New: Real-time data can be collected during remote profiling.
  • New: Peak snapshots can be collected during remote profiling.
  • Change: Improved performance of memory dump imports.
  • Fix: Collecting snapshots with more than 4GB instance field data will succeed, but data will not be included for all instances.
  • Fix: Various UI improvements.

Version 5.0.29, released November 28, 2014

  • Fix: Sessions saved using NmpCore could become corrupt.
  • Fix: Gen #0 snapshot collections in NmpCore became full snapshot collections.
  • Fix: Progress messages not always presented in NmpCore.
  • Fix: Context menu was not shown in the instance graph.
  • Fix: Transfer of session data from a remote session could fail.

Version 5.0.27, released November 26, 2014

  • New: Initial .NET Memory Profiler 5.0 preview release.