Memory Increase with Addressables on iOS When Loading Scenes

When adding scenes to Addressables, there is a significant increase in memory usage during scene loading (not downloading) specifically on iOS devices. The issue persists across various configurations of Addressables and does not appear in the editor’s profiler.
I thought that I would be able to add as many Addressable scenes as I like and be able to load them separately if needed. Is it impossible?

Steps to reproduce:

  1. Set up Addressables with the following configuration:
    • Remote Load Path
    • Contiguous Bundles: On
    • Non-Recursive Dependencies: On
    • Asset Load Mode: Requested Asset and Dependencies
  2. Add multiple scenes to Addressables, testing with:
    • Pack Together
    • Pack Separately without moving duplicates to a separate group
    • Pack Separately with duplicates in a Pack Together group
    • Pack Together By Label
  3. Monitor memory usage during scene loading on an iOS device.

Expected Result:
Memory usage should remain stable during scene loading.

Actual Result:
Memory usage increases significantly with each added scene when using LoadSceneAsync on iOS devices.

Additional Information:

  • Tested Addressables versions: 2.3.1, 1.21.18, 2.3.7
  • Unity version: 6000.0.11f1
  • Number of included assets: approximately 1000
  • Total size of all bundles: around 150 MB
  • Both shared and non-shared dependencies are present in the scenes.
  • Changing Addressables Settings did not yield any improvements.
  • There are concerns about whether Addressables metadata might be consuming significant memory, even though they are not explicitly loaded.

Possible Cause:
The issue may arise from how Addressables manages dependencies and metadata on iOS, leading to increased memory consumption.

Attachments:
On the first screenshot number of assets equals 588 and on the second its equals 1009.
Size of all bundles: 53mb vs 111mb. In this addressable scene 99% of shared addressables assets.

Are you aware of „asset churn“? Sounds like it may apply here. Read the other paragraphs too, they provide further usage tips.

https://docs.unity3d.com/Packages/com.unity.addressables@2.3/manual/MemoryManagement.html#avoid-asset-churn

By shared assets, I meant shared assets between bundles (separate scenes group or addressable groups). Usually, such resources are duplicated and allocated to a separate group.
I tried both combining everything into one group, and separating it with the removal of duplicates into a separate group.
In my case, loading into this scene takes place from the scene included in the player build. Therefore, asset churn is excluded.

I submited a bug report CASE IN-94153

Using dynamic shader loading resolved this for me.
Project Settings=>Player=>Other=>Shader Variant Loading Settings:
Default chunk size: 1
Default chunk count: 1