public static void Func() { // System.Type t = Types.GetType("Unity.MemoryProfiler.Editor", "Unity.MemoryProfiler.Editor.dll"); //var assembly = Assembly.Load("Unity.MemoryProfiler.Editor"); //var type = assembly.GetType("Unity.MemoryProfiler.Editor.MemoryProfilerWindow"); #if false var memoryProfilerWindow = type.InvokeMember( null , BindingFlags.CreateInstance , null , null , new object[] { } ); var methodInfo = type.GetMethod("TakeCapture", BindingFlags.NonPublic | BindingFlags.Instance); methodInfo.Invoke(memoryProfilerWindow, null); #endif //var window = EditorWindow.GetWindow(type); //var methodInfo = type.GetMethod("TakeCapture", BindingFlags.NonPublic | BindingFlags.Instance); //var methodInfo = type.GetMethod("DelayedSnapshotRoutine", BindingFlags.NonPublic | BindingFlags.Instance); // methodInfo.Invoke(window, null); // Debug.Log(window); var now = System.DateTime.Now; string fpath = System.IO.Directory.GetCurrentDirectory() + "/Temp/" + now.ToString("yyyyMMddHHmmss") + ".snap"; MemoryProfiler.TakeSnapshot(fpath, FinishCB, ScreenshotCallback); }
public void RunMemoryProfile(bool full = true) { if (runningMemoryProfile || runningProfile) { return; } runningMemoryProfile = true; UpdateManager.Instance.Profile = true; Directory.CreateDirectory("Profiles"); if (full) { MemoryProfiler.TakeSnapshot($"Profiles/FullMemoryProfile{DateTime.Now:yyyy-MM-dd HH-mm-ss}.snap", MemoryProfileEnd, CaptureFlags.ManagedObjects | CaptureFlags.NativeAllocations | CaptureFlags.NativeObjects | CaptureFlags.NativeAllocationSites | CaptureFlags.NativeStackTraces); return; } MemoryProfiler.TakeSnapshot($"Profiles/ManagedMemoryProfile{DateTime.Now:yyyy-MM-dd HH-mm-ss}.snap", MemoryProfileEnd, CaptureFlags.ManagedObjects | CaptureFlags.NativeAllocations | CaptureFlags.NativeAllocationSites | CaptureFlags.NativeStackTraces); }
public static void native(ConsoleSystem.Arg arg) { string str = MemSnap.NeedProfileFolder(); DateTime now = DateTime.Now; MemoryProfiler.TakeSnapshot(string.Concat(str, "/memdump-", now.ToString("MM-dd-yyyy-h-mm-ss"), ".snap"), null, CaptureFlags.NativeObjects); }
/// <summary> /// MemoryProfiler.TakeSnapshotを実行する /// </summary> /// <param name="fname">snapshotのファイル名</param> public void TakeSnapshot(string fname) { isDone = false; var path = string.Format("{0}/{1}.snap", Application.temporaryCachePath, fname); MemoryProfiler.TakeSnapshot(path, FinishCB, ScreenshotCallback); }
private void Start() { MemoryProfiler.TakeSnapshot("Snapshot", ((s, b) => Debug.Log(s + b)), CaptureFlags.ManagedObjects | CaptureFlags.NativeObjects); _transforms = new Transform[Count][]; _positions = new Vector3[Count][]; for (int i = 0; i < Count; i++) { _positions[i] = new Vector3[Count]; for (int j = 0; j < Count; j++) { //_transforms[i, j] = new GameObject("obj" + i).transform; _positions[i][j] = Vector3.one * i; //_transforms[i, j].position = _positions[i, j]; } } }
public static void full(Arg arg) { MemoryProfiler.TakeSnapshot(NeedProfileFolder() + "/memdump-" + DateTime.Now.ToString("MM-dd-yyyy-h-mm-ss") + ".snap", null, CaptureFlags.ManagedObjects | CaptureFlags.NativeObjects | CaptureFlags.NativeAllocations | CaptureFlags.NativeAllocationSites | CaptureFlags.NativeStackTraces); }
public static void native(Arg arg) { MemoryProfiler.TakeSnapshot(NeedProfileFolder() + "/memdump-" + DateTime.Now.ToString("MM-dd-yyyy-h-mm-ss") + ".snap", null, CaptureFlags.NativeObjects); }