Follow-up: [IOS] [UE5.6.1] Physical memory regression on IOS after upgrading to Unreal 5.6.1

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.

Steps to Reproduce

Thank you for sharing your findings Camille, will pass this on to the team.

Best regards.