Horizon Zero Dawn™ Complete Edition

Horizon Zero Dawn™ Complete Edition

View Stats:
Performance degrading over time & windows memory compression
Windows memory compression. It degrades my performance in game, and MAY have caused my only game crash so far (in 25 hours of playing).

But, Windows memory compression: this might be a new concept for a lot of people reading this. Basically, windows finds low-priority data in your RAM and compresses it so that it takes up less of your physical RAM. Compressing and decompressing this RAM data takes a little bit of processing, so it's not great to have windows compress RAM that your application is actively using.

How that relates to this game:

All of the RAM that the game uses at any one time is called its 'working set'.
Some time into playing the game, can be 5 mins or can be 30, windows starts placing pieces of the games working set into compressed RAM. The longer you play, the more it places in. This means that the working set is partially compressed.

I have 16GB of RAM. Normally the working set for this game, on my system, is 6.5GB. But after a hour of playing only 3-4GB of that remains uncompressed.

The more RAM is compressed, the more unresponsive the game becomes. I have noticed that when a lot of the games working set is compressed I will get things like skipping audio and frame drops. Also, I have only had one crash in the game and that crash was when 1/2 of the games working set was compressed and the performance was rough. Was it a co-incidence? Who knows.

Anyway, when too much RAM is compressed restarting the game solves the issue and everything is nice and fluid again. However, it's not long before windows peeks over it's newspaper and notice's that you're playing Horizon and RAM compression starts up again on Horizons working set - and, as you might expect, the performance degrades.

I suspect that windows memory compression is being overly aggressive with Horizons working set in RAM. Despite having 5-6GB of free RAM, it still compresses up to 50% of horizons working set in RAM on my PC. This could a leading cause in poor performance (That isn't GPU related) on many people's systems... and perhaps even some of the crashing? Users have reported more crashing with memory intensive things in the background, and that WILL cause windows to more aggressively compress Horizons working set in RAM (As the RAM pool is lower in space).


Now, disabling memory compression. Yes, it's possible. BUT, memory compression is normally a good thing, and disabling this isn't recommended for most. If you want to try and see how the game runs with out windows compressing the heck of of the games working set in RAM, you should be capable of researching how to do it for yourself. If you can't figure out how, then you probably shouldn't be trying it anyway.

Edit: If you want to observe this yourself, open windows Resource Manager and go to the memory tab. At some point in playing, your Working Set for Horizon will start to shrink as the "Memory compression" process grows in RAM use.
Last edited by Super Bambaspis; Aug 15, 2020 @ 5:51am
< >
Showing 1-7 of 7 comments
Victoria Raverna Aug 15, 2020 @ 6:45am 
I don't think it is memory compression that caused your problem. With modern CPU, memory compression that Windows 10 use is not going to cause performance problem.

The problem with this game is that any lag from CPU have a chance to cause it to crash. It is more likely that the crash was caused by something else.

Also there are report of possible memory leak. That are more likely to be the problem than the compression. Also memory leak can be the caused of why Windows compressed a large percentage of the game's memory. Memory leak means there are memory that are allocated by the game then the game forget of those memory, never use them again but don't free them. Windows can probably detect that the memory is not being accessed again and mark them as safe to compress.

Super Bambaspis Aug 15, 2020 @ 8:25am 
Yeah, that this caused the crash is loose. I doubt it. My crash wasn't caused by CPU lag though, my CPU is approx 50% utilized why I play (Ryzen 2700x). The first thing I checked on crash was my second monitor with all of my monitoring on it and nothing special appeared to happen, certainly no bottleneck.

But yeah, it was my initial thought that it was poorly managed RAM that windows was detecting as unused, so it compressed it. But, why load in 5.5GB initially if you're not using that data? And why, for that same area 30 mins later, do you only need 3.5GB of uncompressed data - and why, when so much RAM is compressed, does that area perform so much worse than when it did when the working set wasn't 30-50% compressed?

A memory leak doesn't frontload too much data in RAM on the first load, it's a gradual increase. And surely that initial higher uncompressed memory footprint was what was intended, and not loaded in error. Well, you would hope so.

So it doesn't really add up, to me, that windows is accurately compressing the memory for this game. Especially not when my performance isn't dropping on longer play sessions with my memory compression disabled. It runs as smooth 2 hours in as it does on boot, which wasn't the case at all over my first 20 hours playing.

Maybe the game is being sloppy with memory, I would buy that, but perhaps that sloppiness could be triggering over-eager compression.
Last edited by Super Bambaspis; Aug 15, 2020 @ 8:31am
Super Bambaspis Aug 15, 2020 @ 8:31am 
It wouldn't be the first time windows 10 memory management caused performance issues in games. Memory compression has been known to cause latency and performance drops in some other games.

Every time the memory compression messes up, and it compresses something the game needs, that RAM needs to decompress which takes CPU cycles and RAM bandwidth. When the game's working set of RAM is 30-50% compressed it's not hard to imagine that it could have a notable performance impact and hinder the proper operation of the process.
Last edited by Super Bambaspis; Aug 15, 2020 @ 8:32am
luckz Aug 15, 2020 @ 9:14am 
My crashes are all in the cutscene system, I guess conversation transitions or new content being loaded or something being saved (which doesn't mean creating a savegame = checkpoint.dat).
Do you have other types of crashes?
MajorLeandro Aug 15, 2020 @ 9:38am 
I don't have crashes work horizon, but I see a big ram usage and vram usage. After time I have to restart game to avoid stutters.
Dave Aug 15, 2020 @ 9:46am 
The only thing memory compression will use is CPU resources. So if you have less than an 8 core CPU, I would turn off compression. You can easily turn it off
Last edited by Dave; Aug 15, 2020 @ 9:47am
Super Bambaspis Aug 15, 2020 @ 4:21pm 
Originally posted by Dave:
The only thing memory compression will use is CPU resources. So if you have less than an 8 core CPU, I would turn off compression. You can easily turn it off

Normally yes, it doesn't affect performance, but some games will stutter as they wait for needed memory to be uncompressed. A little bit of data needing decompressed doesn't add enough latency to affect anything, but if a lot of a processes working set is compressed it certainly can add significant latency to retrieval as the 'memory compression' process can't decompress it all fast enough. In a game that leads to CPU dropped frames regardless of available CPU and GPU resources.

I tested in 30FPS to reduce my CPU load, and I still had problems with Memory Compression enabled when around 30%+ of the working set was compressed. Tons of headroom on my CPU (Ryzen 2700x w/ 16GB 3200hmz).
Last edited by Super Bambaspis; Aug 15, 2020 @ 4:33pm
< >
Showing 1-7 of 7 comments
Per page: 1530 50

Date Posted: Aug 15, 2020 @ 5:40am
Posts: 7