It's understandable that Unreal needs to touch a lot of files when starting the editor. But what if I told you that more than 5500 of those files are not needed for the editor to start at all and are just adding multiple seconds to the editor launch time?
Let's fix this!
#UE5 #gamedev
https://larstofus.com/2025/09/27/speeding-up-the-unreal-editor-launch-by-not-opening-5500-files/
Speeding up the Unreal Editor launch by … not opening 5500 files?

In my last article I wrote about some tooltip optimization to reduce the start time of the Unreal Editor by 2-5 seconds. Turns out people do really care about their editor start time. So much that …

Larst Of Us

@LarsThiessen Excellent work! (also, I see @superluminal screenshots, I like :))

I suspect finding and fixing these types of small slowdowns can be a fulltime job at this scale. My last several years at Unity were similar, but it is an uphill battle. Yes you find a ton of small inefficiencies all the time, and they are easily fixable. The problem is, there are several hundred people sometimes adding *new* inefficiencies.

@aras @LarsThiessen @superluminal but it would be surprising if unreal didn't have some subset of regression tests, each of which fails if it doesn't complete within some time limit on some reference hardware config...?
@JamesWidman @aras @LarsThiessen @superluminal I think rather than surprising, that would be the norm. And any performance regression testing would be an unexpected bonus. But yes, that would be a nice thing to have at least in theory. Tends to be very noisy, though, and issues where you're slowly degrading performance over time (often depending on content) are very hard to find with regression tests on their own.
@JamesWidman @aras @LarsThiessen @superluminal in this example, the amount of work scales with how many content packs you have on your local machine. If you have a stripped down bare regression test for performance, then it'd potentially miss the issue entirely if it has no content packs. If it does have content packs your next problem is that when the code was originally added it may have been fine, but the accumulation of content packs over time makes it increasingly noticeable.
@JamesWidman @aras @LarsThiessen @superluminal Which is not to say that was the issue here, it's just how it often goes with regression tests for performance in games. That said, tracking the editor boot time over time is just a good thing to do, and having some benchmark which you always want to stay under is also good. If it blows that budget you can get somebody to investigate. Usually this just happens when people complain or get annoyed enough :')

@dotstdy it seems like assets/content packs would need to be part of some regression test suite (and therefore checked into that suite's repository)?

(here it definitely helps to have a VCS that supports checking out only a strict subset of a large mono-repo.)

@dotstdy to track performance tests using asset sets that reflect real-world use cases would of course require A Big Goddamn Mono-Repo, but then, it's not as if Epic doesn't have the resources for this. They ought to be able to have constant inputs and reproducible outputs (including a reproducible duration as one of the outputs for each test in the suite).

And it would help their users to make things faster (which seems like it would help their business?)

@JamesWidman the better question is whether a big automated system would be more efficient or effective than just having somebody check it occasionally. Also note the content packs in a default install are controlled by Epic, but that's not generally true. Those packs are coming from third parties in general.
@JamesWidman @dotstdy
My guess is that they probably have *some* form of regression testing, but, as mentioned, there is no way to ensure it catches everything. Even if they use the fortnite-repo (which would literally be a "big goddamn mono-repo"), this probably wouldn't catch those specific issues with the starter content, since this branch probably doesn't use them.
@JamesWidman @dotstdy Tokenization of real world assets is key