dotMemory 2017.1 Help

Cross-Workspace Comparison View

Cross-workspace comparison is comparison of snapshots stored in different workspaces (or, in other words, snapshots collected in different profiling sessions).

As dotMemory is unable to match the lifetimes of objects from different profiling sessions, the Cross-workspace comparison view will not show you data on new or collected objects. It only matches existing objects (the ones that have survived garbage collection) by their type.

The Cross-workspace comparison view shows data in a list with the following columns:

NameDescription
Type Type name.
Objects (A) The number of instances that exist in the first snapshot (marked with the A letter).
Objects (B) The number of instances that exist in the second snapshot (marked with the B letter).
Objects delta The difference between the number of objects in A and B.
Bytes (A) The overall size of objects in the first snapshot (marked with the A letter).
Bytes (B) The overall size of objects in the second snapshot (marked with the B letter).
Bytes delta The difference between the size of objects in A and B.

Example

For better understanding of how cross-workspace comparison differs from comparison of snapshots collected in one session, let's use the same example we used in the Comparison View section.

/help/img/dotnet/2017.1/cross_workspace_comparison_example.png

Grouping Object Sets

For convenience, you can group the list in four different ways:

  • Plain List
    Object sets are displayed in a plain list. This is the easiest way to identify objects with the highest memory usage.
  • Group by Namespace
    Object sets are grouped by their namespace. This type of grouping is very convenient when you want to concentrate in determining issues in your own classes.
  • Group by Assembly
    Objects are grouped by the assembly they come from. This type of grouping can also be used to separate your own classes from the system ones.
  • Group by Interface
    Object sets are grouped by interfaces they implement. If an object implements more than one interface, it will be displayed under each implemented interface.

Filtering Objects in the List

You can filter out object sets that are of no interest for your analysis.

To narrow the list, start typing the desired type name in the Filter field. dotMemory will exclude all sets that doesn't match the pattern from the list.

Last modified: 3 April 2017