UnityObjectTable
UnityObjectTable copied to clipboard
Limitation #1 thoughts
Due to the nature of ListViews, rendering should only happen for the ones that are visible. So you only need to worry about keeping the overall mem footprint low due to the data needed for the whole thing(not just the ListView and the ListViewItems but the data needed to construct the items).
I recently wrote a small tool for prefab usage reports.At first I did it naively and just straight up asked for all prefabs in the project I was testing it in and then tried to cross reference them with Scene Hierarchy. Kept the UnityEngine.Object refs from the AssetDB for close to 2500 prefabs. That alone was mem heavy. I managed to make it quite faster as soon as I stopped keeping references to UnityEngine.Objects etc. I only kept hashes to the assets for being able to address them through AssetDB and InstanceIDs for keys and for pinging GOs in scene hierarchy.
Some other observations. Making this a step process and adding a button to initiate the whole thing,basically making this an on demand procedure, made it easier. Since projects can easily overcome a number of assets and scripts that can cripple memory for such queries, doing it once on demand seems more appropriate. Also adding a cancellable progress bar seemed a good idea. If the project is heavy enough you can cancel the process and release resources(cached data).