We tested a small sample project on two machines (AMD and Intel):
On the Intel Machine (using 12th Gen Intel(R) Core™ i9-12900K) the Completing Domain
step takes around 20x times longer than on the AMD (using AMD Ryzen 9 5950X) machine.
On both, we freshly cloned the same project and make simple code changes (changing one character) to trigger recompilation.
Using assembly definitions or not doesn’t make any difference in the project.
What could be the cause of this vast difference? (20s to 3m of reload after each script change)
Did you try running the profiler? Does either of the machines use a slower hard drive than the other? It really could be caused by many things.
I tried to run the profiler in the editor, but even the profile just stops at this point on the “slower” machine.
both machines use SSD’s and are nearly identical in terms of performance (graphic cards etc.)
Also in previous LTS versions the issue isn’t there, only when using 2022.
Also important to mention is that we use ECS and dots with nearly all packages (Entities, Physics, Netcode).
in previous editor version and the same packages 0.51, we didn’t experience that slowdown.
Anything else we can use to investigate what might be causing this?
That’s expected. You need to:
- Enable editor profiling;
- Extend the “history” of the profiler to at least 1 minute (ideally to as long as the hang is)
- Reproduce the hang
- Pause the profiler
- Find the hang in the profiler. The whole hang will be contained within a single frame, so it will look like there was one really long frame/lag spike.
1 Like
It seems the main difference is the amount of time spent in:
JitCompilerService.CompileInternal() [Invoke]
Also on the AMD machine, there is just one spike, while on the Intel machine we have multiple long spikes:
The profiler data is too large to upload here, shall I add a link to a google drive folder or similar?
Could you check if by any chance the Intel machine has “synchronous compilation” in burst settings enabled?
1 Like