void OnHeapReceivedSaveOnly(string path, bool captureResult)
        {
            EditorUtility.DisplayProgressBar(HeGlobals.k_Title, "Saving memory...", 0.5f);
            try
            {
                var args = new MemorySnapshotProcessingArgs();
                args.source = UnityEditor.Profiling.Memory.Experimental.PackedMemorySnapshot.Load(path);

                var heap = PackedMemorySnapshot.FromMemoryProfiler(args);
                heap.SaveToFile(autoSavePath);
                HeMruFiles.AddPath(autoSavePath);
                ShowNotification(new GUIContent(string.Format("Memory snapshot saved as\n'{0}'", autoSavePath)));
            }
            catch
            {
                m_CloseDueToError = true;
                throw;
            }
            finally
            {
                m_IsCapturing = false;
                m_Repaint     = true;
                EditorUtility.ClearProgressBar();
            }
        }
Exemple #2
0
        void OnHeapReceivedSaveOnly(UnityEditor.MemoryProfiler.PackedMemorySnapshot snapshot)
        {
            UnityEditor.MemoryProfiler.MemorySnapshot.OnSnapshotReceived -= OnHeapReceivedSaveOnly;

            EditorUtility.DisplayProgressBar(HeGlobals.k_Title, "Saving memory...", 0.5f);
            try
            {
                var args = new MemorySnapshotProcessingArgs();
                args.source = snapshot;
                args.excludeNativeFromConnections = excludeNativeFromConnections;

                var heap = PackedMemorySnapshot.FromMemoryProfiler(args);
                heap.SaveToFile(autoSavePath);
                HeMruFiles.AddPath(autoSavePath);
                ShowNotification(new GUIContent(string.Format("Memory snapshot saved as\n'{0}'", autoSavePath)));
            }
            catch
            {
                m_CloseDueToError = true;
                throw;
            }
            finally
            {
                m_IsCapturing = false;
                m_Repaint     = true;
                EditorUtility.ClearProgressBar();
            }
        }
        void OnSnapshotReceived(string path, bool captureResult)
        {
            var args = new MemorySnapshotProcessingArgs();

            args.source = UnityEditor.Profiling.Memory.Experimental.PackedMemorySnapshot.Load(path);

            m_snapshot = PackedMemorySnapshot.FromMemoryProfiler(args);
        }
Exemple #4
0
        void OnSnapshotReceived(UnityEditor.MemoryProfiler.PackedMemorySnapshot snapshot)
        {
            UnityEditor.MemoryProfiler.MemorySnapshot.OnSnapshotReceived -= OnSnapshotReceived;

            var args = new MemorySnapshotProcessingArgs();

            args.source = snapshot;
            args.excludeNativeFromConnections = false;

            m_snapshot = PackedMemorySnapshot.FromMemoryProfiler(args);
        }
Exemple #5
0
        /// <summary>
        /// Converts an Unity PackedMemorySnapshot to our own format.
        /// </summary>
        public static PackedMemorySnapshot FromMemoryProfiler(MemorySnapshotProcessingArgs args)
        {
            var source = args.source;

            var value = new PackedMemorySnapshot();

            try
            {
                VerifyMemoryProfilerSnapshot(source);

                value.busyString = "Loading Header";
                value.header     = PackedMemorySnapshotHeader.FromMemoryProfiler();

                value.busyString  = string.Format("Loading {0} Native Types", source.nativeTypes.Length);
                value.nativeTypes = PackedNativeType.FromMemoryProfiler(source.nativeTypes);

                value.busyString    = string.Format("Loading {0} Native Objects", source.nativeObjects.Length);
                value.nativeObjects = PackedNativeUnityEngineObject.FromMemoryProfiler(source.nativeObjects);

                value.busyString = string.Format("Loading {0} GC Handles", source.gcHandles.Length);
                value.gcHandles  = PackedGCHandle.FromMemoryProfiler(source.gcHandles);

                value.busyString = string.Format("Loading {0} Object Connections", source.connections.Length);
                if (args.excludeNativeFromConnections)
                {
                    value.connections = ConnectionsFromMemoryProfilerWithoutNativeHACK(value, source);
                }
                else
                {
                    value.connections = PackedConnection.FromMemoryProfiler(source.connections);
                }

                value.busyString          = string.Format("Loading {0} Managed Heap Sections", source.managedHeapSections.Length);
                value.managedHeapSections = PackedMemorySection.FromMemoryProfiler(source.managedHeapSections);

                value.busyString   = string.Format("Loading {0} Managed Types", source.typeDescriptions.Length);
                value.managedTypes = PackedManagedType.FromMemoryProfiler(source.typeDescriptions);

                value.busyString = "Loading VM Information";
                value.virtualMachineInformation = PackedVirtualMachineInformation.FromMemoryProfiler(source.virtualMachineInformation);
            }
            catch (System.Exception e)
            {
                Debug.LogException(e);
                value = null;
                throw;
            }
            return(value);
        }
        void ReceiveHeapThreaded(object userData)
        {
            var args = new MemorySnapshotProcessingArgs();

            args.source = userData as UnityEditor.Profiling.Memory.Experimental.PackedMemorySnapshot;

            try
            {
                m_Heap = PackedMemorySnapshot.FromMemoryProfiler(args);
                m_Heap.Initialize();
            }
            catch
            {
                m_CloseDueToError = true;
                throw;
            }
        }
Exemple #7
0
        void ReceiveHeapThreaded(object userData)
        {
            var args = new MemorySnapshotProcessingArgs();

            args.source = userData as UnityEditor.MemoryProfiler.PackedMemorySnapshot;
            args.excludeNativeFromConnections = excludeNativeFromConnections;

            try
            {
                m_Heap = PackedMemorySnapshot.FromMemoryProfiler(args);
                m_Heap.Initialize();
            }
            catch
            {
                m_CloseDueToError = true;
                throw;
            }
        }