Iteration time in this release is much slower than anything previously released. So productivity will sink drastically in some common tasks. Is there a hardware upgrade that can regain velocity to something workable?
Benchmarks show that 2021.1 is on average 60% slower at common tasks such as press play and refresh script and the fastest gain is 80%+ overclocking a 5800x and that’s only for script refresh.
Press play will always be slower unless you pour LN2 down a 5800x and sink in 200W. Turning an office into a chemistry lab is not the most practical upgrade path.
Yeah working in unity 2021 has been a huge pain for me, changing a script in unity now feels like forever, even when we just have 2 or 3 scripts it takes 10-15 secs to compile
I gave this a quick try myself with some editor versions I have currently installed, and I’m really disappointed by the latest beta.
Enter playmode:
2018.4.32f1 was the fastest version, entering playmode within 1.5 seconds.
2020.2.3f1 was a bit slower already, entering after 2 seconds.
2021.1.0b11 was slowest, entering after 2.5 seconds (and a bit extra, considering this annoying window appearing for a full second after hitting play every time since 2021.1)
(DLL import means replacing a simple shared library with a few common code lines with a slightly different version that just changes a single string to something else)
I guess it’s obvious that the 2021.1 beta has a serious problem. Taking almost double the time to do basic things compared to 2020.2 is completely against any “rapid prototyping” workflow the marketing guys are praising.
I tested this with a Threadripper 3960X on an empty project. If changing Debug.Log(“hi”) to Debug.Log(“bye”) takes 5 seconds to recompile already, how on earth are you supposed to prototype any bigger project with a few hundred scripts without getting crazy?
Just to put this into perspective: fully rebuilding a .NET 4.5.2 solution (8 projects, around 110k lines of code) takes about 3 seconds on my machine. But changing a single script line in an otherwise empty Unity 2021.1 project isn’t possible in under 5 seconds?
This is ridiculous and almost sounds like a bad joke, and I probably still wouldn’t believe it if I didn’t just tested it out myself.
Thanks for post, looks like skipping this release completely. The editor is already incredibly slow on the old hardware (2017 year laptop) on 2020.2. It is unimaginable, how it could be much slower.
If you’re affected by reduced performance in and outside of the editor after switching to a new version of Unity, please consider submitting bug reports for these issues. Chances are that they are specific to certain combinations between hardware, software and projects that are hard to pin down and fix without help from affected users.
You’re getting much better deltas than I do with 2020.3 or maybe 2020.1 is faster than 2018.LTS. If you get the courage to test other versions I’m interested. I quite like URP so maybe I’ll downgrade to 2019.LTS.
Probably because this blog doesn’t actual talk about the use case benchmarked. Cange script->editor interactive & press play → playing speed are not mentioned.
1323490 for play->playing and 1323492 for scrip change → editor interactive
Domain reloading regression has been reported by many people since the slowdown of 2020.2 so it’s unlikely to be project specific and definitely not hardware specific, as you can also deduct from benchmarking on vastly different hardware. I read that earlier versions of the input system caused massive reload slowdowns so this could be a combination of Unity packages.
You have your own benchmarks. What are the results?
The incident that I mentioned above is tracking a compilation time regression that only occurs in 2020.2 and 2020.3. This is unlikely to be the cause for the longer waiting times most of you have been reporting here. We have a fix for this issue now which is currently being reviewed internally. This regression doesn’t affect newer releases since the script compilation pipeline has been rewritten in 2021.1.
Based on @laurentlavigne 's project we now also reproduced a regression in assembly reload times after applying script changes starting with 2020.2. That regression is being tracked here and still being investigated. If you are affected by longer waiting times when entering Playmode (with Domain Reloading enabled) or refreshing the Asset Database after upgrading to a newer version (2020.2+), this case might be related.
Hi,
I am currently seeking at changes we have made that explain performance regression in these scenarios
I already found 3 big issues:
1 about script compilation itself (for change script > editor ok scenario)
1 about assembly reload (for both scenarios)
1 about IDE integration project (for change script > editor ok scenario)
We are actively working on those 3 issues. However there is a workaround for the script compilation one:
In the Player settings we added support for deterministic script compilation and enabled it by default. Disabling it should speed up script compilation.
I would really be glad if you could tell me how much impact it has on your projects for the change script > editor ok scenario (don’t expect life-changing improvements though, as script compilation usually only accounts for a marginal part of what happens on changing a script file).
Regarding IDE integration, maybe there is a clue here: open Rider in 2017 is near instant, in 20.+ it takes over 15 seconds, 21.1 is a bit slower than 20.1.
Deterministic was turned on in 2020.1.17 as well.
In any case since you asked I’ll redo the tests with that off on both versions.
Here are the results:
2020.1.17: 7s
2021.1.1 between 12s and …
on first compile
deterministic on gives the same results in 21 and slightly slower in 20.1
As much as I like to help you I have to cut down on the testing because it’s already cost a lot of time and the project is late. So if you don’t mind, instead I’ll refer you to Barbora from support, he can give you a copy of the project.
I appreciate the team taking a look at this issue. Any improvement is really welcomed.
I just wanted to add my experience:
I have a domain reload tracker in my project since the beginning, starting on Unity 2019.
In 2019.4, my compile/domain reloads were about 6s, sometimes 10s max if I change a lot of editor scripts.
Nowadays in 2020.3, my compile/domain reloads are consistently 11s+. Sometimes even 30s.
I haven’t significantly added new scripts or plugins since upgrading to 2020 LTS, but it really feels like my workflow speed has halved.
I appreciate the team that’s looking at improving this, as it’s one of the non-flashy features that really affect everyone using the engine.
The massive FPS drop in URP does occur still with 2021.1.0f1 (solving this for 2020.3 LTS is really what matters here but just to say that it doesn’t seem to actually have been solved for 2021 unlilke what is stated in the below issue report:
Thanks a lot for your help and efforts on this. LeonhardP seems to be looking into the same issue (in case you haven’t coordinated yet).
I am curious about how you take the measurements by the way. Is it just by using a chronograph ? Or are you looking at editor logs ?
We don’t have an ETA yet on a fix. We are currently looking at all changes within the compilation pipeline and domain reload areas that may have an impact. And carefully benchmarking every change. That is quite a long process, and we will take care to put some additional performance regression tests about the compilation pipeline and domain reloading to avoid this in the future.