I resolved my MainThread spikes (overruns) by disabling the following two services:
- Windows Search (Provides content indexing, property caching, and search results for files, e-mail, and other content)
- User Energy Server Service queencreek (Intel(r) Energy Checker SDK. ESRV Service queencreek)
With MSFS running, I’ve witnessed each service utilize up to 10% of my CPU’s total capacity, with the User Energy Server Service specifically consuming resources in bursts.
I’m specifically referring to reoccurring spikes at set intervals - for example, my thread would show an increase in CPU utilization every second regardless of my settings and scenario (airport, aircraft, weather, AI traffic, etc.). Flying GA at a small airport would not result in overruns as the main thread cycle time remained under the maximum millisecond value to maintain a stable locked frame rate. However, simulating an airline environment with multiple addons resulted in overruns.
Generally speaking, I would consider the following overruns normal in MSFS:
- The first 10 to 20 seconds after starting a new flight.
- Switching between cockpit and external cameras.
- External camera: Panning 360 degrees for the first time
- Cockpit camera: Panning around the entire flight deck for the first time.
- When ever MSFS loads scenery-dense areas, especially custom airports and cities.
- Slow or unstable internet connection if you stream satellite data.
- Changing the weather.
- Switching between MSFS and a second display.
So, if you start a new flight, wait for say 30 seconds and monitor the Rendering FPS window part of developer mode without moving your view or applying any changes to your simulator (stationary at a gate for example), and still experience CPU spikes, chances are that a non-MSFS process is consuming valuable CPU resources. 3rd party addons can of course also cause overruns, so performance should ideally be measured with a clean copy of MSFS to establish a baseline.
This thread also mentions disabling the NVIDIA game overlay, which I would recommend as well.
Lastly, it might be worth mentioning that using the built-in V-Sync feature causes frame rate lagging, meaning that it takes a couple of seconds for the frame rate to catch up to your set locked frame rate value after an overrun occurs. For NVIDIA users, I highly recommend using nvidiaProfileInspector by GitHub user Orbmu2k as an alternative:
- Disable the MSFS V-Sync option.
- Edit the Microsoft Flight Simulator profile using the NVIDIA Profile Inspector by modifying the Vertical Sync option. I’m using 1/2 Refresh Rate for my 60Hz screen to lock my frame rate at 30.
My system:
- Intel Core i9-12900KF
- NVIDIA RTX 4070 12GB
- 32GB RAM
- Windows 11 Home
- MSFS 1.38.2.0 (15805654)