-
Notifications
You must be signed in to change notification settings - Fork 516
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Preview][Memory] Reintegrate allocation callbacks mechanism #1242
base: unity-main
Are you sure you want to change the base?
[Preview][Memory] Reintegrate allocation callbacks mechanism #1242
Conversation
…tion Add option to use stevedore or ono for external build deps
In the `XmlSerializationReader` class, the `ReadString(string, bool)` overload was not implemented in the Mono class library implementation used for the unityaot profile. The implementation used for the unityjit profile from the reference source implements this method. I've copied the implementation from the reference source code here into the code used for the unityaot profile.
Set exe bit on bee
Implement a ReadString overload (case 1106236)
Set using stevedoreBuildDeps as default
…on-domain-unload Ability to continue domain unload when an exception is encountered
…cesses to complete
Allow namespace-agnostic class lookup by passing NULL namespace.
…r-support Incremental gc editor support
…d, so we can use barriers on both mono and il2cpp
…g sequence point until actually needed. Brings use from ~20x slower to ~5x slower when debugger codegen is enabled vs no debugger codegen.
… per assembly table rather than in metadata binary file. This is step towards per assembly conversion.
The Suspend debugger test was hanging intermittently on most platforms. These seemed to occur because the codegen checks for `g_Il2CppDebuggerCheckPointEnabled` were not getting the proper value, and assuming the check point was not set, so the VM would not suspend. This meant that the main thread could not be suspended when the debugger was trying to exit, so the main thread kept looping forever, with out allowing the debugger to exit it.
The Mono implementation of mono_runtime_try_shutdown does not actually shut down the VM. Instead, it sets the flags to indicate the VM is shutting down. The VM should actually shutdown in mono_runtime_quit. In some cases, we see this code path taken when processing the CMD_VM_EXIT command. This seems unlikely, but can happen when the code above cannot find a suspended managed thread. If mono_runtime_try_shutdown actually waits for managed threads to complete, it will hang, as the main thread won't be suspended because resume_vm is called just above mono_runtime_try_shutdown. So for IL2CPP mono_runtime_try_shutdown doesn't do anything, but mono_runtime_quit will actually shutdown the VM.
Use new mac and linux images
…2987 Increase max size of localloc and localloc_imm on amd64. (mono#15374)
…r-fix-create-boxed-value Fixing issue with debugger CREATE_BOXED_VALUE command. case 1169306.
Bump bdwgc submodule ( case 1143739)
…cise-array-scanning Bump bdwgc submodule to fix precise array marking (case 1188407)
[Android] Fixing problem with toLanguageTag for API < 21
There is logic to ensure debugger thread is shutting down before we continue, but thread has not actually exited. This leaves us open to race conditions in profiler events and thread info machinery that are cleaned up by runtime shutdown.
…ugger-shutdown-race Wait for debugger thread to exit (case 1180399, case 1189077)
Switch powershell to cmd
… background or the device is asleep.
Fix case 1044454. Stopwatch on Android does not update.
…ith apdomain. (case 1194176)
…94176 Avoid caching of System.dll image and types as they may be unloaded w…
…s in the background or the device is asleep." This reverts commit d496518.
…mono-dynamic-vcxproj Fix vcxproj by removing non-existent file.
…hook declaration from the .h file
Josh Peterson seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account. You have signed the CLA already but the status is still pending? Let us recheck it. |
Note, when we used the unity memory allocator previously in Mono and IL2CPP we had a noticeably larger working set; i.e. Unity memory allocator was optimized for speed not memory usage at the time. |
@realek ^ |
Yeah, and it wasn't insignificant. We had enterpise support customers complain and it had to be reverted. |
good to know, we'll try against the new memory manager / allocator changes and see what the differences are and how we can mitigate them ^^ |
As part of the initiative to track all of the memory going into unity, we started a bit of work to get both scripting backends to automagically allocate through the memory manager instead.
This PR is currently a preview as we spin up a custom build x branch and do performance testing to ensure we do not regress anything ^_^. I'd expect we improve allocation performance at least a bit