skip to main content
Unreal Journal
It’s A Size, Jim, But Not As We Know It, Not As We Know It…

It’s A Size, Jim, But Not As We Know It, Not As We Know It…

A really small bug fix is presented here - with a lot of Trekkie banter to fluff the piece out... and why not?
More
Sign Of The Times

Sign Of The Times

PVS-Studio pointed us toward some code with suspiciously mixed signed/unsigned math. This was actually causing some issues - and here we tell you how to fix them
More
Clear And Reset Danger

Clear And Reset Danger

A common programming mistake is fixed here, this time in the FBX importer
More
Static Code Analysis With PVS-Studio (Part 5)

Static Code Analysis With PVS-Studio (Part 5)

The fifth part in our series looking at coding errors found by using the static code analysis tool PVS-Studio
More
The Sadness of the Ignored Null Pointer

The Sadness of the Ignored Null Pointer

In this post we present an optimization coming from removing some pointless null pointer checks. The way that we found this was quite interesting
More
Speeding Up The Time Limit Controls

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
More
The Battle of the Lean and the Inlined Bone Functions

The Battle of the Lean and the Inlined Bone Functions

We took a look at the inlining of a certain part of the codebase and were shocked with what we found... we then went about improving it
More
ToString() Or Not ToString()… Wait, What’s The Question?

ToString() Or Not ToString()… Wait, What’s The Question?

ToString() is one of the most commonly called functions in UE4 - certainly across the editor, the content cooker and such. Here we take a look at it and make it over twice as fast
More
Tiny Code Fixes – Part 1

Tiny Code Fixes – Part 1

Here we present several small code fixes and improvements in a nice little package
More
Package Versioning… How It Works… And An Optimization

Package Versioning… How It Works… And An Optimization

UE4's Package Versioning is a bit of a dark art for most.. here we try to remove some of the confusion around it - while, again, offering some improvements through optimization
More
Portrait Of A Serialize Perf Killer

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
More
Sweeping Up And Disassembling A Physics Macro

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
More
Static Code Analysis With PVS-Studio (Part 4)

Static Code Analysis With PVS-Studio (Part 4)

The fourth part in our series looking at coding errors found by using the static code analysis tool PVS-Studio
More
When Are Shopping Lists A Waste of Time?

When Are Shopping Lists A Waste of Time?

We take a look at some list generating code with UE4 - and why it was completely pointless
More
Using The Disassembler To Highlight Optimization Targets

Using The Disassembler To Highlight Optimization Targets

We use the debugger's disassembly view to look at FPaths::IsRelative() after it shows up in our profiling tests. Then we optimize it
More
Static Code Analysis With PVS-Studio (Part 3)

Static Code Analysis With PVS-Studio (Part 3)

The third part in our series looking at coding errors found by using the static code analysis tool PVS-Studio
More
The Cook, The Resave, His Garbage And Her Optimization

The Cook, The Resave, His Garbage And Her Optimization

We present here a way to improve cook times by reducing the frequency of garbage collection
More
The Case Of The ExportHash String Monster

The Case Of The ExportHash String Monster

We found CreateExportHash() was showing up in profiling the cooker - so we optimized it. Our findings and changes are presented here
More
Patch Content Early – NOT At Runtime

Patch Content Early – NOT At Runtime

We present an optimization that removes a significant amount of memory churn from the animation code
More
A Huge PhysX Memory Churn Reduction

A Huge PhysX Memory Churn Reduction

Here we implement a scratch buffer to reduce temporary memory churn passing through PhysX
More
Go to Top