If there is one thing the Unreal Engine doesn’t suffer from, it is it’s lack of features. Over the past years it has been transformed from “just” a game engine into an ‘everything machine’.Games, Movies, Live-Content, VFX, Previz, even virtual fashion shows – it’s a behemoth of an editor with a multitude of tools, most of which are barely used or even known by many of its users. This multitude of features comes with some drawbacks, one of which is the infuriatingly long editor start-up times. Epic has taken many measures to combat this problem. Live-coding (formerly hot-reloading) aims to eliminate the need to restart the editor, while derived data caches attempt to bypass much of the asset preparation work. There are also many tips that aim to speed things up. For example, using a simplified test level as the editor’s starting point means fewer assets need to be loaded. While all these tips help to some extent, they are, of course, project-dependent and require active work. Wouldn’t it be great if we could reduce startup time in general? Analyzing the startup performance That’s why I recently started to dig around in the startup process of the editor, although I didn’t get my hopes up to discover any significant optimization potential in a part of the engine that was surely already well optimized.At least that’s what I thought until I came about this little function call: It seems innocent enough, just some widget receiving the text it should use for it’s tooltip, how long could it take? If you are familiar with C++ and some of it’s performance pitfalls you might already have a suspect: Surely there is a string copy involved, right?Fortunately, Unreal is smart enough not to use raw strings for user-facing text. Instead, the text is passed via an FText struct, which, for the purposes of this article, you can think of as a pointer to text. This makes it quick to copy.However, there are two other reasons why this function is problematic.Firstly, despite its name, the ...
First seen: 2025-09-06 03:24
Last seen: 2025-09-06 21:27