Version: 2018.4
LanguageEnglish
  • C#
Experimental: this API is experimental and might be changed or removed in the future.

MemoryProfiler.TakeSnapshot

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Declaration

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

Parameters

path Destination path for the memory snapshot file.
finishCallback Event that is fired once the memory snapshot has finished the process of capturing data.
captureFlags Flag 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.