Version: 2018.3 (switch to 2019.1)
  • C#
Experimental: this API is experimental and might be changed or removed in the future.


Suggest a change


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.


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.



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


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.


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.

Did you find this page useful? Please give it a rating: