Search Unity

System.ExecutableAndDlls huge memory footprint on iOS

Discussion in 'Editor & General Support' started by unity_VNNwB27bClRgHQ, Dec 28, 2019.

  1. unity_VNNwB27bClRgHQ

    unity_VNNwB27bClRgHQ

    Joined:
    Dec 28, 2019
    Posts:
    1
    In our project System.ExecutableAndDlls consumes over 550mb of RAM on iOS when other things consume something around 50mb. We are using many external plugins and dlls, so we started to remove them but it helps to save only 10% of size. Code stripping enabled.

    Then we used objdump and size macOS utilities to get information about external frameworks and text-sector size from the binary (size of the binary is 140mb, 65/75 for ARMv7 and ARMv8). Reducing number of external frameworks doesn't work well (only a few megabytes can be saved).

    Profiling in Unity doesn't help, Unity Profiler (and Unity Memory Profiler) cannot give information about what consumes this huge block of memory.

    As I know, in build on Windows there is Assembly-CSharp.dll including all compiled scripts, but we can't build game for Windows bacause it mobile-only.

    Google doesn't give me more information.

    So my question actually is: How to analyze this data, how to optimize executable memory footprint and where I can find what actually consumes this memory?
     
    Last edited: Dec 28, 2019
  2. vijayv03

    vijayv03

    Joined:
    Dec 16, 2016
    Posts:
    15
    Facing same issue. it’s taking up 250mb. Trying to figure out what’s contributing to System.ExecutableAndDlls
     
  3. david_unity440

    david_unity440

    Joined:
    May 31, 2018
    Posts:
    4
    Hi Unity Team, we are also facing this. What do you suggest we do?
     
  4. pokruchin

    pokruchin

    Joined:
    Apr 24, 2019
    Posts:
    38
    Same problem. What is the proper way to manage those 'executables and dlls'?
     
  5. vijayv03

    vijayv03

    Joined:
    Dec 16, 2016
    Posts:
    15
    I dont have a proper solution for this yet. but what seemed to somewhat help is reducing the shader variants. I have swapped few multi_compiles with shader_variants. Shader_variant removes unused derivates. Multi_compile creates all the possible variants with out stripping. this helped me a lot.

    shader_feature is very similar to multi_compile. The only difference is that Unity does not include unused variants of shader_feature shaders in the final build. For this reason, you should use shader_feature for keywords that are set from the Materials, while multi_compile is better for keywords that are set from code globally.


    If I find anything more, i will keep you guys posted.
     
    pokruchin likes this.
  6. joshuacwilde

    joshuacwilde

    Joined:
    Feb 4, 2018
    Posts:
    727
    were you able to find anything else? I'm running into the same problem
     
  7. xT1TANx

    xT1TANx

    Joined:
    Nov 16, 2017
    Posts:
    17
    I can't find any info on this topic. Can we please get someone from Unity in here?
     
  8. joshuacwilde

    joshuacwilde

    Joined:
    Feb 4, 2018
    Posts:
    727
    bump. Any unity devs please?