Search Issue Tracker
Won't Fix
Votes
1
Found in
5.4.0f3
Issue ID
888423
Regression
No
[IL2CPP] Build hangs while building a project with a large array of strings
Reproduction steps:
1. Open the attached project.
2. Make sure Scripting Backend is set to IL2CPP.
3. Build and run the project with iOS/Android platform.
- Build hangs while building to device.
Reproduced with:
5.3.8f1, 5.6.0b11, 2017.1.0a3
iOS, Android
IL2CPP
Not reproducible with:
Mono2x
---------------------------------------
Response from Dev team:
This is due to the large array initializer of strings expanding to a very large method body without any branches. The array initialization looks like a constant operation in C#, but it really gets expanded in IL to a bunch of string allocations and stores into the array.
This aggravates C/C++ compiler, especially in release, as it tries to optimize this. We will look at better handling this issue, but not likely in the near future.
As a workaround, you can load the string data from an eternal file or encode it as a stream of bytes. You can then read the data into an array yourself and avoid the time/memory expended by the C++ compiler.
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- [WebGL][Android] Corrupt header when connecting via IP
- Editor and Android Player hangs/freezes when repeatedly Loading/Unloading AssetBundle in Vulkan
- Selecting a Material for HDRP Decal Projector in the Inspector window spams errors in the Console
- Expanded Asset Preview Box moves/hides when creating new Asset in Project window
- Player crashes on Meta Quest with "/apex/com.android/runtime/lib64/bionic/libc.so" when using OpenXR Plugin in a specific project
Add comment