Following up on my thread about IOS memory usage: [Content removed]
I do believe I’ve narrowed down the issue:
UsePakFile=True
bUseIoStore=False
bUseZenStore=False
The long and short of it: UE5.6.1 changed the default to use AsyncLoadingThread2 even when not using IoStore. Without GUseOldLoaderAsFallback, the new codepath appears to create a spate of LinkerLoads that do not get discarded. As a result, the memory allocated by these LinkerLoads remains resident and raises our baseline memory enough to push the game into IOS jetsam territory:
+87 MB custom-version buffers
+76 MB pak-read buffers
+140 MB package-summary/export-hash family
I had noticed those allocations in Instruments but ruled them out as irrelevant because LinkerLoad is a normal part of the engine. It just took me a while to realise that these are normal during *load time*, just not past that. Toggling GUseOldLoaderAsFallback back on fixes the dangling allocations.
We’ll probably want to use IoStore at some point, but for now this mostly explains the memory regression.