Traffic analysis is the main instrument for determining ineffective memory usage in your app. Excessive allocations and garbage collections may imply significant memory management overhead. For example, you have an array of objects which should be updated over time. You can update each object in two ways: by creating a new instance with required properties or by updating properties of the existing instance. From functionality perspective, both options are the same. But from the point of memory management workload, creating a new instance all the time is much less effective.
Use traffic analysis to understand what objects are created/collected most intensively in your app and what functions cause this memory traffic.
How to Get Traffic Data
Memory traffic information is collected by dotMemory along with other allocation data. Thus, if you want to analyze memory traffic, check the Collect allocation data of every N-th object profiling option before starting a session. After the data is collected, you proceed to the Analysis Overview page.
To begin the traffic analysis, you must first select the timeframe for the traffic data. There are two options:
Traffic between the start of a profiling session and the time of getting a particular snapshot.
In this case, you should click the Memory traffic link for the desired snapshot.
This option is possible only if you turn on Start collecting immediately in the Memory Traffic profiling options.
Traffic between two snapshots.
In this case, you should drag and drop the desired snapshots to the comparison area and click View traffic.
After this, traffic data for the desired timeframe will be shown in the Memory Traffic view.