Level Unloading Performance

Hi Epic,

in our current game we have some performance problems while unloading levels (open world with world composition). While unloading levels we get hitches of 400ms and more. The profiler blames the UnregisterComponent and ULevel_ApplyWorldOffset function while RemoveFromWorld Time. One frame after this the garbage collector needs around 200ms to clear the memory in (4.10 the garbage collections was much more expensive).

Is it possible schedule the unloading of a level over many frames? Our previous Engine has handled it like this and it works good.

Thank you

Hi there… 4.11 has improved the garbage collection… Here’s some text from the release notes:
Faster garbage collection. We now support garbage collection “clusters”, which allows the engine to treat groups of objects as a single unit, drastically reducing the number of objects that need to be considered. Currently, only subobjects for Materials and Particle Systems are clustered. Additionally, the mark and destroy phases are more cache-coherent, resulting in a 9x reduction in time, and memory churn has been reduced during reachability analysis.*

Not sure if you can upgrade your project, but it might be worth it…

ACK! Not sure from your post above if you are already on 4.11… but, maybe you are…if so, apologies.