We’re approaching the end of our game development and I am building quite often. Having a lot of “free time” looking at the build progress bar, I am often looking at the windows task manager as well. I’m noticing that way too often, Unity is using only ONE thread to do a lot of steps.
Yes, compiling shaders and running the il2cpp compiler are multithreaded… but most of the build time is spent using one tiny thread.
Unity, would you please take a look at the build process and try to enable multithread as much as possible?
Thank you!
1 Like
I’d like to add that I recently bought a brand new shiny SSD NVM.E that is supposed to give me blazing RW speed ( > 1gb/s) and 200 000 IOPS + intel core i9 10-cores, 20 threads.
I just updated our VCS repo and I’m looking at the windows task manager.
Unity process: 5% cpu (1 full thread out of 20 available) and ~20-30 mb/s of disk access.
The unity boot sequence could use jobs in order to massively process assets in parallel?
edit: I am currently building. The current stage “Calculate Asset Dependency Data” is painfully slow. After an hour in this stage (66% remaining), here’s my average process info:
CPU: 5% (one single thread at full load)
DISK: 0.1 Mo/s
NETWORK: 0.0 Mbits/s
An HOUR like that. I am really wondering what this process does and what is the bottleneck(s).
Another thing! I’ve been doing quite a lot of builds lately. It can take up to 16 hours to fully build everything. Some builds are considerably faster, about an hour.
Even with these quick “1 hour” builds, the build progress bar doesn’t give me the smallest clue of how long it’s gonna take, or the current step out of totalSteps.
Any kind of build time estimate would be greatly appreciated.
How big is the project? Our project takes several hours to do a from-scratch build, but only about 10m after that most of the time.
I recommend setting up a dedicated build server, or use Unity Cloud. At least this way you can remain productive while waiting for a build to finish.