Tag archive


Posted on

Trash Compactor

We recently found a huge leak in the UE4 garbage collector, particularly rearing its head on dedicated servers for large open-world games. Servers for arena type games with short play times (<1 hour) seem to be little affected, and clients don’t see the problem much either. “Huge” is not hyperbole here – we’re talking the garbage collector alone using up to 10 GB of ram in under 24 hours of server operation! … Read More

Posted on

Placating The Natives

In this article we delve into Blueprint Nativization, a relatively new feature of UE4 that offers significant performance improvements for many projects. Sadly, it often doesn't work out of the box - we've spent some time fixing and improving it for a particular project that we were working on. We have a LOT of changes to present here - some of which have already been implemented into UE4. … Read More

Posted on

PhysX: The Case Of The Leaky Cloth

We found quite a large leak within Apex 3.4 (currently used in Unreal Engine 4, amongst others) - in a relatively short run of the title that we were working on, we saw over 150mb of leaked memory. Here, we present some changes that will fix this … Read More

Posted on

The Case of the Locked File

We were seeing frequent file IO errors in relation to temporary files created during cooking (particularly when compiling shaders). Our findings for why this were happening were surprising. Here we present a clean way to fix the issues … Read More

Posted on

Speeding Up The Time Limit Controls

When a process takes a long time to complete, it makes absolute sense to put some time limit checks in so that you're not starving other work. What you don't want to do, of course, is to have those checks slow your original task down further by any considerable amount - here, we found that exactly this was happening .. so we present a solution … Read More

Posted on

Portrait Of A Serialize Perf Killer

With performance critical editor and cooker code, it's well advised to consider performance when adding tests for rare errors. Here we take a look at this and show by, by considering the CPU pipeline and code cache, a simple change can yield a significant performance improvement without reducing stability … Read More

Posted on

Sweeping Up And Disassembling A Physics Macro

Macros can often be useful to make certain programming tasks simpler - but they can also cause hidden performance headaches that might otherwise be avoided. Here we look at one of those - and how to improve it … Read More

Posted on

The Smallest, Coolest Optimization

While profiling a game's runtime, we found that 40% of memory allocations were coming from a single function. The fix/optimization involves adding a single character … Read More

Go to Top