also in relation to my previous post:
this is not solved, I can repro it in 6000.1.7 and 6000.0.26
all the cancellation tokens in the screenshot are leaked from InstantiateAsync
| Svelto.ECS | https://github.com/sebas77/Svelto.ECS |
| Code Articles | https://www.sebaslab.com/ |
| Photography | https://sebasphotography.com/ |
| Riding | https://www.instagram.com/f850gs_seb/ |
also in relation to my previous post:
this is not solved, I can repro it in 6000.1.7 and 6000.0.26
all the cancellation tokens in the screenshot are leaked from InstantiateAsync
DO NOT use Object.InstantiateAsync. This hidden method must stay as it is. It causes massive leaks and me spending days to pinning it down. Eventually and sadly it wasn't Memory Profiler to help me but instead the still maintained (and now I know why) Heap Explorer plugin (you can find it on github).
At this point I think I am gonna write a blog post about the tools I am using for memory investigation on Android (and one day on iOS) #unity3d
When people tell me how I use Unity I tell them (I kid you not)
vanilla c#, Il2CPP, burst, collections + SRP with custom rendering (potentially GPU Instancer plugin, MAYBE DOTS rendering on mobile, not sure), Asset bundles. No Monobehaviours, No Gameobjects.
WITH CAUTION:
UI toolkit (never tried but seems good, only exception for the MB/GO rule), VFX Graph
all the rest..is a waste of time (I'd include DOTS framework too because I would use Svelto.ECS obviously, but DOTS libraries are OK)
The addressables documentation used to have a very useful FAQ page, why is this gone? Especially the part on the addressable rebuild, there are info that are not found anywhere else in the docs!
https://docs.unity3d.com/Packages/com.[email protected]/manual/AddressablesFAQ.html
It's a while now I don't use target frame rate on android (using my own sleep instead), today I had another go since the incremental GC doesn't run when I ask it to run (manually), but inside WaitForTargetFPS, which is naturally driven by Application.TargetFrameRate.
I set TargetFrameRate 60 and it adds 11ms to a frame that already lasted 11ms? what the hell is going on here?!
what's the deal with Unity URP, RenderMeshInstanced and Reflection Probes? A lot of promises to fix the support, but then it never happened.
I wouldn't mind to use a super fast version of RenderMesh (which would fall back to SRP batching) but only if I could disable culling, which for some reason is an option that Unity devs think is useless sigh.