Performance Deteriorating during longer flights?

Hello

Since I’m doing longer flights, I have the problem that my performance suddenly starts to drop. Normally I’m getting around 25 - 35 FPS. If I do flights of maybe an hour or so it all goes well.

But recently I was doing longer flights (i.e. Spain → UK by Cessna 175 for Neofly) which means I was often on 3 - 4 x time accelleration.

What happens is that FPS goes gradually down and over a timespan of maybe 30 - 50 Minutes I go from around 30 FPS to 3 FPS… There is nothing I can do to recover. Only stopping the sim (i.e. kill the task) and restarting MSFS would bring me back on normal FPS levels.

I’m not sure if this is a “new” thing as I said - I am only recently doing longer flights with time accell.

Do you have similar issues? Any hints?

Greetings

Merlin

4 Likes

Check your memory consumption via the Windows Resource Monitor and look for the flightsimulator.exe.

Maybe it’s a memory problem and your simulator starts paging data to disk.

How much RAM do you have and what is your selected graphic settings?

I was checking via Taskmanager how my system was doing. My PC was basically twiddeling it’s thumbs…
CPU / GPU was barely used. I have 64 GB of RAM of which around 40 GB was used. Data service was also ON.
I am using ULTRA - and when I launch MSFS I get around 30 +/- FPS quite stable…
It kinda feels as if MSFS has a memory leak and starts to get clogged - and restarting it would kinda “reset it”?

1 Like

I have noticed the same kind of behaviour too. Not to quite that degree, but there is certainly a performance loss as time goes by.

I’ll often start a session getting a comfortable 60 FPS with modest CPU load, but after a few legs on a bush trip frame rates will stuck in the mid 50’s, and the effective CPU load has more than doubled. This is despite my destination on these flights often being quiter/less dense than the departure, which should result in better performance, not worse.

The game also has bizzare GPU usage. I can often see the GPU load bouncing around by around 25% and the graph in monitoing tools is all over the place. MSFS will claim ‘limited by GPU’ the whole time, but the GPU itself very much disagrees with that.

It’s quite clear there are some significant performance issues around. My general frame rates and overall stability of performance is much, much worse than it was ~6 months ago. The various fixes have largely done nothing to actually help from what I’ve seen.

Yea - I also think it’s something that Asobo needs to look into at their end - I do not have any issues with other games whatsoever…

3 Likes

Where in task manager are you looking?

The crucial value would be the committed memory, not only the memory in use. If 40GB is being used, it’s possible that far more is being allocated.

IMHO that would indeed point to a memory leak because no way MSFS really needs that much memory.

To “reset” memory use fully, you’d need to reboot or use a program like RamMap to clear the standby list of files.

RAMMap - Windows Sysinternals | Microsoft Docs

I’ve given up on long flights for now, but that’s not my thing anyway so… I’d see my FPS drop in 50-80% in the past.

Do you have rolling cache on? All my long hauls with rolling cache on went fine (a few up to 14hrs) . I noticed that when I would turn it off that I would run into problems on longer flights.

2 Likes

I have pretto much also given up on flights that are iver an hour. Typically it ends up with a random CTD without warning or degradion where I just turn it off. High settings, 32gb and 8gb gpu, it’s like I run out of memory. The ram or vram does not unload it seems like and I end up hogging the system.

Performance degradation during long flights isn’t really a “memory leak” but rather a combination of available hardware resources and non-optimized coding. Every flight in MSFS is essentially the same. As an aircraft flies or sits on the ground, MSFS CPU has to find all of the graphics data for objects and terrain needed by the GPU to create the frames displayed on the monitor. When a user specifies all ULTRA graphics settings, the CPU has to find and process A LOT of graphics details. As the CPU collects the graphics data, it has to go into real memory to be processed. Memory utilization skyrockets while it appears the CPU and GPU are both loafing around. When memory utilization is very high, the CPU cannot process all the graphics in memory fast enough to send graphics frames to the GPU because as the aircraft continues flying, more graphics data needs to be collected by the GPU. FPS slowly drops as memory fills up.

How can this be fixed?

One unsatisfactory (for me) workaround is to pause the flight for 10 to 20 minutes. This is usually enough time to clean out memory. FPS improve when the flight resumes.

MSFS is a very graphics intensive program. The GPU is key driving graphics to the monitor. It is important to drive the GPU usage as high as possible 90% to 100%. The CPU part of MSFS (“main thread”) is responsible for collecting from wherever it is all the graphics information needed by the GPU. If the GPU is at 100%, the CPU cannot send any more graphics information to the GPU so the CPU usage % is very low.

Limited by the “main thread” means that the CPU part of MSFS cannot collect and process the graphics information needed by the GPU fast enough. The GPU usage % is low and the CPU usage % might be low or high. If both CPU and GPU % are low, then why isn’t FPS higher and actually lower? This is caused by the CPU filling memory with graphics data. If somehow MSFS is reprogrammed to eliminate the “main thread” so that all CPU cores run at 100%, it will be sending a LOT of graphics to the GPU. When the GPU reaches 100%, the CPU cores will be have to throttle back.

Right now without hardware and software upgrades, there are two graphics tuning “knobs” available to the user. 1) Change the amount of graphics needed by the monitor. The amount of graphics needed for 4k monitors are significantly more than what 1080p needs. If the GPU is running at 100% for 4k, then 1080p should decrease GPU %. 2) Change the graphics settings. We all want the highest quality graphics so we set all the graphics to Ultra or use tweaks to go beyond ultra. The higher the graphics settings, the more graphics information that the CPU needs to collect and process. When the GPU waits for the CPU (main thread), FPS drops. Lowering graphics settings reduces the demand on the CPU and pushes the GPU % up. And FPS goes up. Tuning graphics parameters is challenging because there are so many and they all do not have the same impact. The goal in tuning is to slowly lower some, not all, parameters to move %usage from CPU to GPU, that is, limited by the GPU. This should provide the best quality graphics and the best FPS currently available.

The two best parameters to change are the LOD numbers. I used a tweak to boost my LOD numbers higher than the 200 max. Most of my flights were 15 to 20 minutes so I never had deteriorating performance. When I started flying long flights, my. FPS dropped below 10 FPS. Eventually I changed the LOD numbers to 80. I haven’t had any performance problems since then.

3 Likes

What you are talking about explains performance problems in general very well, but not performance degradation. Assuming the “data bubble” around the aircraft is always the same size, if the system could not handle the data load for the selected level of detail, it should be slow from the beginning to the end of the flight, only dependant on the complexity of the terrain.

However, people experiencing degradation have splendid performance at first and get down to single digit frames per second as the flight progresses, no matter the terrain.

Memory does not have to be “cleaned out”. When you delete data on your computer, no matter where it simply gets flagged as free space and is overwritten. It’s not actually being cleaned out. A write operation thus is always more costly than a delete, since a delete does not actually do that much.

The problem is, that for some reason the simulator does not release some of its data at all. Not even after you quit the program. There are simply no or not enough mechanisms in place that help the simulator to alleviate memory usage.

Memory usage should vary with the complexity of the terrain and to some extent it does, but the committed memory is not freed up properly as it should and this leads to degradation at first and CTDs second, depending on the VAS available.

People flying for longer periods of time, either long haul or just slow VFR for hours, will be more affected than people who play maybe 1-2 hours.

PS
I have not yet tested it in-depth, but I think the new patch improved memory handling to some degree.

Yes, rolling cache is on

Thanks for that detailed answer! I will reduce my LOD from 200 down to 80 and see if that helps :slight_smile:

OK - tested now with LOD 80 - and I’m happy to report that my FPS were rocksolid over more than 1.5 hours! I think you just saved my sorry a** :wink:
Thanks again Pacific!

1 Like

This is a bad assumption because aircraft are different, speeds are different, and graphic parameters are different. Assume there is a 10 nm graphics data bubble. An aircraft flying at 60 knots will traverse the bubble in 10 minutes. An aircraft flying at 360 knots will traverse the bubble in 1:40. The CPU needs to collect and process 6x the graphics data for the faster aircraft!

System performance is not constant nor is it linear for MSFS.

Yes it does. Windows will stop running or freeze programs if memory is completely filled.

You are thinking of deleting files on a disk. Memory management is very different. Data in memory is not “deleted” until a program terminates or the program deallocates it. Windows can move the data around in memory but cannot force a program to release it.

It needs a lot of graphics data to create the beautiful scenery we see. It DOES release its data when it is finished with it. The problem is that with a very high graphics demand, the CPU has to process all the data and free its memory BEFORE new graphics data arrives. If it doesn’t, the incoming data is stored in memory until it is processed. When it isn’t processed fast enough, memory fills up and FPS craters.

Windows cleans up everything after the program finishes. Memory used by MSFS is available for use by other programs within a few seconds.

I mentioned three things that can be done to manage memory usage: pause MSFS, decrease monitor resolution, decrease some graphics parameters.

Committed memory shouldn’t be freed up until a program doesn’t need it. It IS freed up when it isn’t needed. “As it should” is your POV. Committed memory is allocated based on the graphics quality required by the user. If the user requires ULTRA 4k graphics, MSFS and Windows will do everything they can to deliver those frames no matter what the hardware is.

Has anyone seen any MSFS messages saying “WARNING, your graphics settings are too high. If you continue, performance will be degraded.” Nope! The only message is seeing FPS lower than 10.

1 Like

But you were the one saying every flight in MSFS is the essentially same. I am well aware that this is not the case for the reasons you mention, so I am glad we agree on that. If the sim varies the size of that hypothetical “data bubble” to account for speed and altitude that’s great. I am not sure that this is the case though. But let’s also remember that there are LODs. So it’s not an “all or nothing” scenario.

What do you mean system performance is not constant? Unless I run out of memory or my hardware throttles down for some reason, the performance output should be constant. Not really sure what you mean honestly.

You misunderstood me. The point is, that “cleaning out” memory is not a performance-intensive operation, because data is not removed but just overwritten. That’s true for persistent storage just as it is for RAM. So stopping the sim for 10 minutes does not help to “clean out” anything. It might help the sim to complete pending draw calls, maybe. But then again when you stop the sim, the aircraft is also not moving. If the sim really bogs down the system so much that it has trouble freeing up memory in time, it’s just a bad design in my book.

Note the word some in the sentence you responded to here. It does release data, but not sufficiently and/or not in a timely fashion.

That’s just not true. At least not on my PC. When I quit MSFS, a standby contingent of 12 GB or so is retained that is not deallocated even hours after exiting the sim. If I try to play any other demanding game after MSFS without clearing the RAM, I get a measurable performance hit.

Yes, but that is all user action and nothing that MSFS does. Your suggestions help of course. I also tuned down the level of detail in certain areas to avoid CTDs.

No, and that’s what I meant when I wrote

It leaves everything to the user without any tools to actually find out why performance is degrading. Other games have guidance, detailing exactly how much RAM certain options will use, and others issue warnings if the selected options are likely not running well.

Right now you can run into degraded performance and CTDs even on a PC that meets the official ideal specs for MSFS. Until I toned down the detail, MSFS would commit more VAS than the system total available. While Windows does not prohibit such behavior in a program, that’s something that should not happen.

Unfortunately - degradation started again - also - for some reasons unknown - MSFS seems to like to change the Graphic settings between a crash or restart. I went from Ultra to High, had a crash - it was reset to Ultra.
I have a feeling that we have a long way to go here…

Have you had a chance to check the amount of comitted memory yet?

Try flying at different detail settings and monitor flightsimulator.exe via Resource Monitor. Just as PacificSet mentioned, 4K UHD requires the quadruple amount of pixels to be rendered and will likely drive up memory use in addition to just using ULTRA settings.

I’d be interesting to see how much memory MSFS demands from the OS on a 4K Ultra setting flight over dense terrain. I can’t test that here, since I only have an 2070 Super a no UHD monitor.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.