[0.4.3-preview.1] - 2021-12-13
Added
- Added a toggle to the Memory Usage Summary when comparing snapshots to switch between normalizing the bars to their respective total, or scaling them to the bigger of the two.
Fixed
- Fixed an exception that occurred when creating a new UI Document via Create > UI Toolkit > UI Document.
- Fixed an Index Out Of Bounds exception in ManagedMemorySectionEntriesCache.Find on opening some snapshots, particularly IL2CPP snapshots.
- Fixed an issue which affected the crawling of some snapshots that prevented Managed Objects of types inheriting from UnityEngine.Object from being properly connected with their Native Objects and therefore not showing their Native Sizes, Instance IDs and Native Object Names in the tables (Case 1383114).
- Fixed âFailed To read Object, please report a bug.â Objects appearing in snapshots with only one or two managed heap sections.
- Fixed âabnormal mesh boundsâ error to not appear on opening snapshots.
- Fixed total available memory so it no longer adds GPU memory on unified memory platforms.
- Fixed Memory Usage breakdown categories adding up to more than the Total value (Case 1381034).
Changed
- Renamed the Memory Usage Breakdown category Other to Other Native Memory to improve clarity slightly. It shows all native memory usage tracked by Unityâs Memory Manager that does not show up in the other, more specific categories.
- Renamed the Memory Usage Breakdown category Virtual Machine to Virtual Machine (IL2CPP), Virtual Machine (Mono) or Virtual Machine (Scripting) depending on which scripting back-end is used, or if two different ones are used when comparing snapshots.
1 Like
[0.4.4-preview.2] - 2022-01-12
Added
- Added the Unity version a capture was made in to the tool-tip of the Session label of opened snapshots.
Fixed
- Fixed tables drawing blank areas when scrolled past row 60000 and scrolling to the right.
- Fixed the Fragmentation viewâs Memory Map drawing of Managed Memory regions while comparing snapshots when they changed size between captures. They would previously show the entire region as changed and not show which objects within them were new or deleted. (Case 1388611)
- Fixed an IndexOutOfBoundsException when sorting size tables in the Memory Mapâs Object list and switching to the Region or Allocations lists.
- Fixed the row size option in the Fragmentation view not being properly stored across sessions for Fragmentation analysis of snapshots in comparison mode.
- Fixed an issue where the crawler would find impossibly big string objects, inflating Managed Object Memory and causing exceptions when these were to be drawn in a table (Case 1393878).
Changed
- Renamed the References column to Referenced By to improve clarity slightly.
[0.5.0-preview.1] - 2022-02-02
Added
-
Added selection events to the view history.
-
Added details panel. This is context aware and will show extra information about whatever the current selection is.
-
Referenced By (Raw) section: This section of the details panel shows the connections to the current selection, where applicable. This can be used to determine the paths to objects that are holding objects in memory and is currently designed as a 1:1 match to the references column click through from the object tables.
-
Selection Details section: This section of the details panel displays, where possible, additional information about the currently selected item e.g. the fields on a managed object or the description of the currently selected memory usage overview category.
-
Showing these details is currently only implemented for Managed or Native Objects, Managed or Native Types and the breakdown categories in the Memory Usage Overview.
-
If an Object is selected that inherits from UnityEngine.Object (a âUnity Objectâ) that has a Managed Shell to its Native Object, the Selection Details treat it as one object, giving you all the info for both of them and list out details separately as well were useful.
-
Where applicable, the selected item is searched for in the editor. If there is exactly one item found in the editor which match the search criteria, which is either the Instance ID (if the capture is from the current Editor Session) or its Name and Type, two things become available
-
The âSelect in Editorâ button to ping the object in the Scene Hierarchy or Project Browser and to select the object so itâs details are shown in any open Inspector view.
-
If applicable, a preview is loaded from the object in the Editor. (NOTE: This is NOT how the object necessarily looked in the build. The search logic may have found a different object or it may have been changed since the build was made. This is just to potentially help in identifying the Object in the capture faster.)
-
Regardless of the results of the search for a specific object, the new âSearch in Scene/Projectâ button can always help in finding Assets or Scene Objects quickly.
-
In Unity 2021.1 and newer, an additional button will open Quick Search.
-
Added the ability to hide table columns and reduced the set of columns shown by default down to the most commonly useful ones. The reasoning for hiding these is:
-
With the managed fields moved to the Selection Details section, the âStaticâ and âField Target Sizeâ columns have become redundant, and so has the ability to expand Managed Objects to see their fields, and the âAddressâ column to see the field layout clearer.
-
With the Selection Details section showing a Unity Objectâs managed and Native info as one, the Managed Objects no longer show their Native Objectâs size and instead of splitting their size into a Managed Size and a Native Size column, the tables now only show one Size column and one Name Column by default.
-
The Native Instance ID is also shown in the Selection Details under the Advanced tab. The most important info from it is considered for the âStatusâ displayed in the âBasicâ info section (i.e. negative = Runtime Created, Positive = Loaded from file).
-
If you took a snapshot of the current editor session, the Instance ID is used by the âSelect in Editorâ button in the Selection Details section to select the instance. It therefore no longer needs to be displayed as a link in the table.
-
All other links in the tables have also been disabled, as they would only help see further details for an object, that now live in the Selection Details section
-
Added a âCountâ and a âTotal Sizeâ label above each table that dynamically adjusts as you filter the table.
-
The Managed Fields inspector in the Selection Details section has some additions over what was previously shown in the tables:
-
It links up NativeArray fields that point to native Allocations with these allocations for easier analysis of DOTS memory usage.
-
For IntPtr fields, it tries to find the Object, Allocation or Region that the IntPtr points at, and shows the information it finds.
-
For UnityEngine.Object.m_CachedPointer it shows the Native Object that the Managed Shell Object points to.
-
Recursive reference chains are caught and truncated so that it is safe to use Alt/Option + LMB click to expand the tree all the way. Though right now, to keep processing times low, it only searches 3 levels deep at a time.
-
Added toggle to truncate type names in the details panel. It can be accessed through the kebab menu icon and the context menu of both the managed object inspector and referenced by tree views.
Fixed
- Fixed Fragmentation page to show an Allocations table with root object and area names when comparing snapshots.
Changed
- Memory Usage Overview categories can now be selected, either via their colored bar or via their row in the table below it. Selecting the category will show a description of what is encompassed in this category in the Selection Details section.
- Reduced the amount of memory used for snapshot preview images in the Editor.
- The Name column in the tables now shows managed string content in quotes.
- On capturing or importing a snapshot, the Snapshot side bar is now toggled visible if it was not before. It also scrolls to reveal the new snapshot.
Weâve posted a new thread for your feedback on 0.5.x with further details on the release here .
1 Like
[0.5.1-preview.1] - 2022-02-25
Added
- Added tooltip to the Referenced By section to explain what it means. âDisplays a list of other entities that reference the selected object.â
Fixed
- Fixed Managed Type truncation for generic types to only truncate the type that holds the generic type arguments.
- Removed âExamples/SearchService/Providersâ Menu item.
- Fixed issue where filters would be added to the spreadsheet tables and could not be removed.
- Fixed issue where selecting something in the references tree view would cause the spreadsheet to repaint and lose latent selection.
- Fixed Duplicate entries appearing in searches in the reference view.
- Fixed NotImplementedException being thrown when traversing history from the fragmentation panel to a highlevel element breakdown selection.
- Fixed the main selection not being recreated in the references view when navigating back in history from other views to the details panel.
- Fixed issue where removing filters would leave the wrong selection in the table view.
- Fixed refernces view selection causing table expansion state to reset.
- Fixed Errors and Exceptions breaking the Memory Profiler Window when minimizing, maximizing or docking and undocking it.
- Improved âSelect in Editorâ search accuracy for Assets and Scene Objects in 2021.1 or newer editors.
- Improved âOpen in Quick Searchâ search string when searching for Scene Objects in 2021.1 or newer editors.
Changed
-
Changed Snapshot preview screen-shot textures to get compressed in memory to reduce memory overhead.
-
Changed Typename truncation so that all typnames are truncated not just the initial typename.
-
Changed the Referenced By treeview to not contain the selected object.
-
The selected object that the references are calculated for are now displayed above the tree view.
-
The Referenced By button now show the number of direct connections in its label.
-
The import buttons has been moved to left side of the memory profiler window toolber.
-
The snapshots panel toggle text has been removed.
-
The details panel toggle text has been removed and the icon has been changed to use the inspector icon.
1 Like
[0.6.0-preview.1] - 2022-03-10
Added
- Added the âUnity Objectsâ view to show a breakdown of memory contributing to all Unity Objects. This enables you to more easily understand the total memory impact of the assets and objects in your project by showing you their total, native, and managed sizes in one place. Unity Objects are grouped by their types, such as Texture2D, Material, and Mesh. Use the âSearch By Nameâ functionality to filter the view to specific objects. Use the âFlatten Hierarchyâ functionality to remove the Type groupings.
- Added the âPotential Duplicatesâ view to show a breakdown of all potential duplicate Unity Objects. Potential duplicates, which are Unity Objects of the same type, name, and size, might represent the same asset loaded multiple times in memory.
- Added the âAll Tracked Memoryâ view to show a breakdown of all tracked memory that Unity knows about.
- Added References To functionality. A list of the objects that the current selection has âreferences toâ will now be displayed in the References To tabbed section of the details panel.
Fixed
- Removed two instances of Reflection for loading icons.
2 Likes
[0.7.0-preview.1] - 2022-05-04
Added
- Progress bar when opening the Tree Map for the first time.
Fixed
- Fixed Displaying of strings longer than 8000 characters breaking the Selected Item Details UI by capping the maximum length of strings to 8000 before displaying them.
- Fixed Compilation on Unity 2021.1.
- Fixed a possible TempJob allocation leak when failing to reading a corrupt snapshot.
- Fixed a NullReferenceException that was thrown upon trying to go back to having Untracked Memory selected while in Fragmentation tab using Memory Profiler (Case 1401201).
- Fixed type name headers in Details panel running off-screen for long type names (Case 1401535).
- Fixed NullPointer exception when clicking on the selected item label in the References panel if no item is selected.
Changed
-
Sped up snapshot opening times.
-
Moved All Object Tree Map and Table to its own Page.
-
The Memory Usage Summary on the Summary Page will now be always unfolded on switching to this page.
-
For all other pages containing the Memory Usage Summary, it defaults to being folded up and will remember its state on each page for the current Session of the Editor.
-
Optimized Tree Map generation. This reduces time to open Tree Map by 25%.
-
Remove reflection usage for opening the Preferences window focused on the Memory Profilerâs settings.
-
Renamed âTop Issuesâ to âPotential Capture Issuesâ.
-
Adjusted the colors of the bar diagrams in the Memory Usage Overview foldout to improve their readability and clarity.
-
Adjusted Engine and Editor API usage to reflect Memory Profiler APIs moving out of Experimental namespaces in 2022.2.0a13.
Removed
- Removed View History buttons from the toolbar. With the removal of links in tables in version 0.5.0-preview.1, these buttons had become largely redundant.
- Removed sorting of the tables for the Memory Summary bars until pending rework on them is conducted.
[0.7.0-preview.2] - 2022-05-04
Fixed
- Fixed the layout of entries in the Selected Item Details panel.
[0.7.1-preview.1] - 2022-06-13 (*)
Fixed
(* This is the actual release date. The date in the published change log is incorrect, subsequent releases will correct the change log.)
[1.0.0-pre.1] - 2022-05-04
Added
- Added Unity Objects comparison view when comparing two snapshots.
Removed
- Removed accidentally exposed as public internal API
- Removed Fragmentation, Objects & Allocations, and Tree Map legacy tabs.
Changed
- Changed minimal supported version to 2020.3.
- Use Editor built-in platform icons in the Snapshot panel.
- Moved Unity Objects and All Of Memory breakdowns to their own tabs.
- Moved Potential Duplicates to an option within Unity Objects.
Fixed
- Fixed an issue whereby tab bar text would overlap with details text on sufficiently small window sizes.
- Fixed an exception occurring when loading an unsupported snapshot and opening the Unity Objects breakdown.
- Fixed an issue whereby a âfeature not available due to pre 2022.1â message can be shown incorrectly.
[1.0.0-pre.2] - 2022-05-05
Changed
- Changed details view UI to hide references section if selected item doesnât have refrences.
Fixed
- Fixed a crash in DynamicArray.Resize (Case 1426543).
- Selecting a Unity Object Type in the Unity Objects Comparison view now clears the selection in the Details view.
- Fixed Value cannot be Null error and infinite Circular References when expanding types with self references in the Managed Fields table in the Selected Item Details panel.
More Details
[1.0.0-pre.3] - 2022-06-30
Added
- All Of Memory Comparison functionality.
- Added the ability to sort by multiple columns on Unity Objects, All Of Memory, Unity Objects Comparison, and All Of Memory Comparison table column headers. CTRL-click a table column header to add it as an additional (secondary, tertiary etc.) sorting column.
- List of executables and mapped files if snapshot is made with Unity 2022.2 or newer.
Changed
- Close a snapshot by clicking the new âCloseâ button, instead of selecting an open snapshot.
- Remove A/B snapshot colors.
- Remove Swap Snapshots button.
Fixed
- Renaming a snapshot no longer allows duplicate file names with different casing, which naturally caused file system errors.
- Fixed detail panel reference view not showing all the references for selected object.
More Details
[1.0.0] - 2022-08-26
Fixed
- Fixed typos in the UI.
- Fixed âDestroying assets is not permitted to avoid data lossâ error when previewing TerrainData objects.
- Minor styling adjustments to Light theme.
- Fixed script upgrader updating the memory profiler code.
More Details
[1.1.0-exp.1] - 2023-03-21
Added
- Added a dropdown to the Unity Objects and All Of Memory views that allows switching between showing all sizes as they relate to Resident Memory, Allocated Memory or both.
- Added support for RenderTexture metadata in memory captures.
- Added tooltips to sizes in Selection Details view, showing the memory usage in bytes.
Changed
- Reduced managed memory usage when opening snapshots by loading the managed heap bytes into native instead of managed memory containers.
- Changed the naming of managed object entries in tables when they are not connected to a native Unity Object from âNo Nameâ to their address. Strings and char arrays additionally show their first characters after their address value. Entries for Unity Objects that had their native object destroyed further get the postfix â(Leaked Shell)â after their address.
- Changed Unity Object comparison for same session comparisons to further distinguish Unity Objects by their Instance IDs, unless the table is flattened.
- Improved Preview, Search and Select In Editor functionality, especially for Scene Objects.
- Objects of types inheriting from MonoBehaviour or ScriptableObject are now grouped under their managed type name in the Unity Objects table.
Fixed
- General layout improvements in details view.
- Fixed missing allocators information in Native->Reserved breakdown in compare mode of the All of Memory view.
- Fixed Managed Fields table to show details for struct data.
- Searching the tables now correctly finds items by their type name or overarching group name.
- Fixed Exceptions when opening snapshots with a managed heap bigger than 2 GB and contiguous managed heap sections bigger than 2 GB (PROFB-41).
- Fixed IndexOutOfBoundsException when selecting Managed Type groups in the All Of Memory table if all instances are Leaked Shell objects.
- Fixed a bug where the Select In Editor button was available, even though the selected object did not clearly refer to one particular item. Clicking the button could therefore select the wrong item. (PROFB-54)
- Fixed captures failing to save when the product name contained illegal characters (PROFB-63).
- Fixed NullReferenceException when selecting a PrefabImporter in the the Unity Objects and All Of Memory tables (PROFB-58)
- Fixed Search in Editor button being enabled when nothing can be searched for (PROFB-59).
- Fixed the issue that finding managed objects by their type was impossible (PROFB-64).
- Fixed an IndexOutOfRangeException when inspecting the details of a managed object with a pointer to a native allocation that has no root name reported (PROFB-66).
More Details
[1.1.0-exp.2] - 2023-04-20
Added
- Added metadata support for AudioClip and Shader objects.
Fixed
- Fixed Unity Objects view not showing graphics resources for snapshots made with Unity 2022.1 and older
- Fixed leaks of native UnsafeUtility.Malloc(Persistent) allocations
- Fixed snapshot renaming issues in situations when warning or error dialog is shown
More Details
1 Like
[1.1.0-pre.1] - 2023-05-04
Changes
Added
- Added thumbnailing for screenshots to improve startup speed.
Changed
- Deprecated accidentally exposed as public IComparableItemData interface.
- Updated window icon.
Fixed
- Fixed an empty MonoBehaviour entry displayed in the Unity Objects table when âShow Potential Duplicatesâ was checked and there are no potential duplicate MonoBehaviours.
- Fixed Summary view tracking of Graphics memory on Switch.
- Fixed the Summary breakdown barâs total label overlapping with its legend when using small window sizes.
- Fixed not showing negative values when comparing snapshots in the Summary view.
2 Likes
[1.1.0-pre.3] - 2023-09-27
Fixed
- Fixed an exception on capturing when the default snapshot storage path was used (./MemoryCaptures) but did not exist. It now gets created if it is missing. Custom set storage paths will still not be created as issues with these need user input to get resolved properly.
- Fixed an ArgumentOutOfRangeException in ManagedObjectInspector on selecting some object entries in the All of Memory and Unity Objects table. The field inspector UI was trying to display the managed field values of static fields that hadnât been initialized.
- Fixed Snapshot opening triggering a synchronous search via SearchService to initialize it for the Select, Find and Asset Preview functionality. As that could trigger SearchService to start indexing, this might have lead to longer stalls on opening snapshots.
- Fixed string rendering when strings included the ´\r´ character (PROFB-113).
- Fixed a crash on opening snapshots with very large managed memory usage (PROFB-156).
- Fixed messaging for resident memory breakdown data availability. Detailed resident memory breakdown data is available for snapshots taken from Unity versions 2023.1 or newer.
- Fixed the Unity Object and All Of Memory table UI so that the table mode dropdown does not disappear in a narrow window size. (PROFB-110)
- Disabled resident memory visualization in âUnity Objectsâ and âAll of Memoryâ tables for WebGL platform. WebGL doesnât provide residency status.
- Fixed bug that detailed information isnât showed for graphics resources.
- Fixed a bug when you canât switch snapshot if snapshot was previously open in compare mode.
- Fixed a managed memory leak in the Memory Profiler Module UI that the package inserts into the Profiler Window (PROFB-160). Also reduced the impact of a Mesh memory leak caused by UI TK (UUM-46520).
- Fixed the display of the memory usage bar diagrams in the Memory Profiler Module UI that the package inserts into the Profiler Window (PRFOB-165).
- Fixed issue with Unity Objects view that caused some managed objects not to group and shown as separate items.
Changed
- Documentation updated.
- The âSearch In Projectâ button now searches in the Assets folder and in Packages (related to (PROFB-54)).
- Improved the performance of selecting items in the All Of Memory and Unity Objects tables for objects with managed memory. This affected in particular objects which have a lot of entries (their own or nested fields) displayed in their Managed Fields in the Selection Details panel. Beyond improving the performance in general, âContinueâŚâ entries, which can be clicked to get further entries added to the view, now not only appear in fields 4 layers down and for big arrays, but also after a total of 1000 field entries have been added to the view.
1 Like
[1.1.0] - 2023-10-16
- Bump version to 1.1.0 from 1.1.0-pre.3.
Also see the [1.1.0 release thread ](http:// Memory Profiler 1.1.0 Released )for discussions of the release.