Diving into my profiler, it's evident that ManagedHeap.UsedSize is continuing to expand as I run my game. I don't think I'm doing anything egregiously bad during gameplay. However, since my game is procedurally generated, a lot of things need to get instantiated at the beginning of a level. Here's the thing: My game doesn't require that the Unity scene be switched in order to change levels, since it's all procedurally generated. However, if I DO switch scenes between levels, this seems to prevent the memory from getting too high -- or at least alleviates the issue to a good degree. The downside to this is, in this particular case, that switching scenes causes my game to suffer slower load times. I'm not sure how much there is I can do with my code to prevent ManagedHeap.UsedSize from climbing. I've attempted pooling a lot of the things I was instantiating, but this only alleviates the issue rather than completely solving it. Having followed the guidelines on the this page, I'm not sure where to go from here. Is there no way to just reduce the managed heap? Meaning, achieve something similar to a scene change, without actually changing the scene?