FPS Drop during flight

It has been a while since I had MSFS perform so well, this update increased my fps a lot and I have managed to get over 55fps in Miami with everything on ultra.
However, there seems to be a memory leak of some sort affecting the game. Yesterday I was on stream flying from Copenhaguen to Moscow. When I took off I was sitting around 45-50fps, but when I reached Moscow I had 5-8fps, I barely managed to land in what felt like a power point presentation.
The issue did not stop when on the ground, so I could not even taxi.
When I checked my ram at the end of the flight the sim was using 29Gb.

The stability of the sim in long flights is terrible, I either crash or loose performance until the sim is unplayable.
I was not using any kind of traffic.

My PC:
RTX2070SUPER
I9900KF
32Gb RAM

1 Like

Some airports have FPS issues too, e.g. Atlanta. So before jumping to conclusions, two questions,

  • did you test an approach on the target Moscow airport after a fresh restart ? And
  • did you actually see the memory loss in Windows TaskMan ?

You are right, Charles de Gaulle has fps issues for example, but that was not the case.

I started having fps issues at a cruise altitude of FL390, where you barely render anything at all, it was more or less clear, so clouds should not be a factor.

  • I did test Moscow after a fresh start, I got 45-50 solid fps, even around the most heavy scenery.

  • I saw that MSFS was consuming 29 out of my 32Gb of RAM, my GPU was at 36% and my CPU at 35%

Thx for the data, looks like a memory leak indeed with CPU and GPU both underperforming. Can’t help you with these issues, but there are more complaints about long flights. The issue is recent, and it probably will get fixed

1 Like

Thanks, I will give it a look, the annoying part of this bug is you only find it after spending 3 hours flying, so it is really frustrating to find out there is a memory leak mid-flight D:

exact same problem the ram usage just keeps going up and up the longer you fly, i then have to save my progress then restart the sim to get it all to clear and increase FPS again

Hope there is a fix soon to this

2 Likes

The reason why FPS drops during long flights and memory utilization skyrockets is because in order to draw the graphic frames being sent to the monitor, the CPU has to collect the graphics information from somewhere. The necessary graphics information may be in memory, rolling cache, in MSFS scenery and object files, or the MSFS severs. When the CPU collects all the graphics information, it has to put it into memory to process it before sending it to the GPU. The next frame is built and this process is repeated over and over throughout each flight. The higher the graphics quality the more graphics info that has to be collected and processed to deliver the same FPS.

When the CPU colllects the graphics information, it has to store it in memory to process it. For highly detailed graphics, the CPU is moving and processing a LOT of information, four times more for 4k than 1080p. If the CPU cannot collect and process the necessary graphics info and feed the GPU fast enough, the FPS counter shows “limited by main thread” and the GPU is underutilized. As memory fills up with graphics info to be processed, FPS continues to drop to unacceptable rates.

It is possible by tweaking and tuning various graphics parameters, it is possible to shift graphics processing from the CPU to GPU. Driving GPU utilization to 90-100% pushes the highest FPS to the monitor. For example, changing monitor resolution from 4k to 1080p allows the CPU to process and send about 4x the graphics data to the GPU!

Of course there are trade-offs. Should performance or quality be optimized? Optimizing performance drives the GPU to 100%. Optimizing quality drives CPU to 100% and the main thread is the bottleneck.

In order to maintain FPS for long flights, the quality should be lowered to move the graphics processing to the GPU (“limited by GPU”).

2 Likes

@PacificSet90456 allow me to disagree… it’s good to balance CPU and GPU, but you can’t solve memory leaks by tweaking with settings… unless you happen to switch the feature off, that is causing it.

Memory leaks are temporary bugs in the software and it should be addressed ASAP. Memory should not be consumed, just because the scenery is big, it should be freed. Especially when a program can run for hours, it should free every byte. To achieve that is part of the art of C++ programming. This thing is happening now, probably caused by some recent change in some part of the program that runs often. Before… it was not, or too small to notice.

Why memory leaks result in FpS loss ? a Windows PC will never run out of memory because there is plenty of disk space. But… when RAM-memory is full, new memory allocated hits the Page File on disk… When that happens, you run your memory as slow as your harddisk. And that gives the performance issues. You see GPU and CPU go low both… and the whole sim is waiting for the harddisk. Close the program when that happens, because it can come to a standstill (hangup or CTD)

If you want to hit the settings… I’d say try fly long hours with multiplayer off… AND with default liveries (just speculation)

3 Likes

I too just had this problem – 32gb RAM and my ram was at 30gb used after I took off from KORD… FPS hit about 3 to 5 fps and it was rough for about 10 mins or so.

I keep reading suggestions about “increase page file” but (a) have no idea how to do this (b) is it really necessary – I have an i9-9900k, 32gb RAM, ssd and RTX 3080.

Any expert advice would be helpful.

2 Likes

Why should there be a balance between the CPU and the GPU? They have two different processing workloads. Their architectures are different, their memory structures are different. The GPU has one job to do, finish building graphics frames and send them to the monitor.

Each user chooses between highest quality frames or highest FPS. I think there have been more posts about FPS issues than graphics quality. Also, some users want to run 4k 70 FPS with 100% ULTRA settings using 2 or 3 year old hardware. Why isn’t this reasonable and possible?

“Memory leaks” can be solved by tweaking settings if tweaking settings causes the “memory leak”.

A real memory leak is only a symptom description of a specific coding error. The only way to fix memory leaks is by fixing the broken code that is causing the memory leak.

Memory leaks are permanent bugs in software until they are fixed. The ONLY workaround is to end and restart the program or reboot the PC.

Where should MSFS put all the graphics information it needs to build the graphics frames for the GPU? It can only process data in memory. Memory HAS to be used. And big scenery needs big amounts of memory. One 4k frame needs about 4x the amount of memory compared to a 1080p frame using the same graphics parameters.

It does free every byte when it is finished with it. Performance analysis of MSFS shows this.

There have been MANY changes made since last August. How many updates, patches and fixes have there been? New features such as VR? Windows updates? Video driver updates? To assume that the graphics parameters used last August should still perform the same way is naive.

Yes Windows can and does run out of memory and not because of memory leaks. Disk space has nothing to do with running out of real memory (RAM).

As RAM starts filling up, Windows starts moving unused or little used portions of memory to the disk page file. This allows running programs to continue using RAM. Performance degrades when a program needs the chunk of memory Windows has moved to the page file. Windows has to retrieve it back into memory. And probably moves other memory chunks to the page file to make room in real memory…

True if there is a real memory leak. However, some users have had success with pausing MSFS for about 15 or 20 minutes when memory fills up as a temporary workaround. MSFS finishes processing the queued graphics and Windows moves all the memory chunks in the page file back into real memory as real memory is freed up. This would not happen if there was an actual memory leak.

I have had no memory issues using multiplayer and different liveries while flying for many hours. But I run my GPU at 100% while my CPU runs about 20%. This does not mean my configuration or my settings are optimum or would work for anyone else.

I don’t think increasing the page file is recommended for fixing FPS problems. Do you know why you’d memory is filling up? Are you running other programs with MSFS such as Navigraph, a web browser, or Netflix/YouTube?

Exactly, you cannot solve a memory leak by lowering your graphics.

That being said, apparently the issue seems to come from the world map streaming, since my co-pilot, who has exactly the same system I own, did not experience any issue (he has data turned off, so he is not downloading the terrain. His internet speed is too low to play online+use photogrammetry/data at the same time).

1 Like

Aha nice he does not have it… you can test things, look at more ! compare ! system specs differ ? same license ? do you run cache ? does he run cache ? what about the aircraft… flight time… check multiplayer settings etc… they recently changed the handling of liveries. Test what happens when you run the same liveries…

This issues hits you without a warning. I had’nt have any of them until last weekend in specific areas in france. Have huge pagefiles on m.2, have huge rolling cache, 32GB. Think that does’nt matter.

-System specs: We have the exact same specs, just different brand of the RTX2070 and RAM
-Different licenses we are using shared cockpit “your controls” to play together
-He is not running cache
-Same aircraft and fly time, he is my co-pilot xD
-We have both turned off multiplayer settings

Only difference is he has all data settings turned off, so his terrain looks like garbage. This leads me to believe the issue comes from terrain, it might be loaded in the ram and not unloaded once you get far away from it or something.

Experiment with it… what happens if he sets these options on… especially internet related…

Initially after the patch I had great performance, around 40fps, but these last couple of days I’d be lucky to get 30, it’s usually sitting around 25-28fps, lowering the graphics to puke has zero effect, they messed something up… again…

1 Like

I mentioned this in another thread, but I just had this exact issue on a long flight.
In my case it cleared up immediately as my landing wheels touched the runway (went from sluggish 5 to smooth 40+ fps like someone hit a switch), and then was perfectly smooth after. I was flying the CRJ, so It has to be software related and not graphical settings or hardware - as those did not change from the second before and after touchdown.

also during flight when it was barely chugging along I tried changing almost every setting, graphic related aswell as data related. No change.

If the data MSFS needs to process the graphics information is larger than the actual graphics then Asobo is doing something really wrong. The ONLY reason why todays games are so huge are high-res textures, not the meta-data.

However, I never had more than 50% RAM or VRAM usage but experienced that “less than 50% CPU / GPU usage but 12 fps” bug. I noticed that being in the outside camera gives higher fps than being inside the cockpit (because the CPU has less to do).

Maybe Asobo should assign individual threads to individual computers inside the aircraft and let them talk to each other (more like in an actual aircraft than a computer software).

1 Like

I think what you are saying is that graphics information collected by the CPU shouldn’t be so large that it can’t be processed fast enough for the GPU to build the actual graphics frames at the desired FPS.

The reality is that there is queuing depending on the graphics parameters set by users and the available system resources. What Asobo is doing wrong is allowing users to set graphics parameters too high. They may be assuming that if users are dissatisfied with graphics detail or performance, then the users will adjust their graphics parameters accordingly. I think this assumption is wrong.

Because MSFS is very complex, it is very difficult to determine if 12 FPS is a code problem, a user problem, or both. The tendency is for users to assume it is a code problem when it isn’t.

Bug? Or graphics settings problem? Have you tried adjusting your graphics parameters to push more graphics processing to the GPU? Usually maximum FPS is achieved when GPU is at 90-100% usage.