Version: 2019.1
Experimental: this API is experimental and might be changed or removed in the future.

MemoryProfiler.TakeSnapshot

Switch to Manual
public static void TakeSnapshot (string path, Action<string,bool> finishCallback, Profiling.Memory.Experimental.CaptureFlags captureFlags);

Parameters

pathDestination path for the memory snapshot file.
finishCallbackEvent that is fired once the memory snapshot has finished the process of capturing data.
captureFlagsFlag mask defining the content of the memory snapshot.

Description

Trigger memory snapshot capture.

Request a memory snapshot capture with the provided arguments. Note that depending on the target build used to capture the snapshot not all fields corresponding to the capture flags will be collected. Two different behaviors of data collection are present inside the system:

* When called directly from the Player or in the Editor (without being connected to a profiling target) - the process is synchronous, creating the memory snapshot file on the host device. Meta data collection will take place if at least one collection callback was registered to MemoryProfiler.CreateMetaData. At the end of the process MemoryProfiler.SnapshotFinished is triggered.

* When called in the context of an Editor connected to a profiling target - the process is asynchronous, creating the memory snapshot file on the host device and sending a capture request to the remote target. The target device then collects meta data using callbacks registered to MemoryProfiler.CreateMetaData. Note that the callbacks must be defined in the profiling target's local assemblies and registered at runtime prior to the capture event being sent. All captured data will be streamed to the Editor from the remote target. On having completed the capture process MemoryProfiler.SnapshotFinished will be triggered inside the Editor.