Memory Improvements

Greetings, performance-hungry Capsuleers!

New Eden is at war again, and with war come new World Record-breaking numbers. An amazing 6557 pilots were in a single system at the same time, although a staggering 8825 players were involved overall.

Signature to the war are the massive fleet battles which represent opportunities for performance measurement. Valuable knowledge is gained by collecting client measurements during these fights.

Battles in EVE Online are incredibly dynamic and unpredictable. Your client does not know what ships will be jumping into the system until they enter, so it must load assets at that point. There are a number of assets that need to be loaded for every player including ship model, textures, sounds, weapon models, animations, and visual effects. With hundreds of different ships, SKINs, weapons, and a plethora of ammo types, it is no wonder that the EVE client wants plenty of memory.

As part of the continuing work to strengthen the foundations of EVE as it goes into its third decade, a further step is being taken to improve client memory performance. While these memory improvements will benefit everyone, they help more dramatically in situations where there will be many different assets loaded by the client such as the large fleet fights mentioned above.

Since large fleet battles are not always available when needed, specific stress tests have been built. The test below has been affectionately named the “Cube of Death”:

Cube of Death

The “Cube of Death” test features 1000 ships that are evenly spaced and stationary. This test facilitates taking reproducible performance measurements between changes – allowing the comparison of before and after results. This particular test shows off the new memory improvements very well, as the most dramatic improvements come from busy scenes with lots of assets.

Let's talk numbers!

There are two types of memory that EVE uses: GPU and System. When people discuss “RAM” they are generally talking about system memory, but it is important to understand the difference.

GPU memory is used to store scene textures, meshes, and other graphics-related data. In a normal desktop PC with a dedicated graphics card, GPU memory is located on the graphics card itself. When you choose higher graphical settings in a game, it will use more GPU memory as a result.

System memory is used to contain everything else the game needs to run: the Python interpreter, the user interface, sounds, networking, user input from the keyboard and mouse, and the localization engine.

While both GPU and System memory will see an improvement to memory use, the big winner with this change is system memory.

In the current version of the EVE client, the “Cube of Death” scene uses about 3600MB of system memory. After the change, it has dropped to approximately 3000MB, or around a 17% decrease in memory use by the client.

The amount of memory improvement is highly dependent on the scene, but the decrease in System memory use is present no matter if there is one ship or thousands. It will just be more noticeable in scenes that are complex and diverse in nature.

In conclusion

The continuing investment in new technology and processes such as the introduction of the 64-bit client, improved crash reports, and now the RAM reduction will set EVE up strongly for its third decade. While much has already been done towards realizing this goal, there are still exciting opportunities and projects still to come.

Large scale fleet fights in EVE and the significant player wars that take place in New Eden are important to EVE, and this latest improvement is another step towards improving the experience and performance for all players involved in making EVE history, while also writing its future.