Search Issue Tracker
By Design
Votes
0
Found in
2021.3.18f1
2022.2.9f1
2023.1.0b5
2023.2.0a4
Issue ID
UUM-30376
Regression
No
[IL2CPP] Execution performance doesn't improve when "in" parameter is used
How to reproduce:
1. Open the attached “IN-31693” project
2. Open the “Window → General → Test Runner” window from the menu
3. Click on the “Run All Tests” button to build and analyse performance
4. Open the “Window → Analysis → Test Report” window
5. View the Sample Group View results for “In_ImmutableLargeStruct_WithInOr” test
Expected result: Execution performance improved at least 8 times using the “in” modifier
Actual result: Barely no performance improvement
Reproducible with: 2020.3.46f1
Fixed in: 2021.3.18f1, 2022.2.9f1, 2023.1.0b5, 2023.2.0a4
Note: Even though, in some versions both with and without “in” modifier
performance results are the same, they’re low and considered as expected
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Editor freezes after some time when using NavMeshQuery::Raycast
- Cube is rendered green when its color is set to black and using the Lift Gamma Gain Volume interpolation
- Inner and outer exceptions are not unrolled correctly
- [iOS][WebGL] Audio Clip doesn't play when Load Type is set to Decompress On Load and iOS Silent Mode is enabled
- Crash on EditorBuildSettings::GetConfigObject when closing a specific project
Resolution Note:
As noted in comments, the performance is as expected on IL2CPP.
The big discrepancy seen in Mono does not translate into IL2CPP as the C++ code generated is very similar between the scenarios, and the only real difference in performance comes from passing the struct as a reference, or by copy, due to the copy operation.