Date: 2026-02-05 13:00:26
Greetings, spacefarers!
Today we’ll be looking at the impact the changes of the 4.3 ‘Cetus’ Open Beta has had on performance, with graphs and a comparison video.
As a reminder - during the Cetus cycle, dev diaries will be on a once-every-two-week cadence.
Back in 3.14, we had hit the limits on how far we could go with optimization with many of the systems of Stellaris. In the 4.0 update, we changed planet and pop systems to one that would be a better foundation for future performance improvements. Alongside the design changes to reduce ship counts and balance the economy, with 4.3 we’re finally able to deliver some of those promised improvements.
We’ve been running side-by-side comparisons of different versions of Stellaris, and while the major differences in versions means we can’t do direct comparisons, we tried to minimize divergence.
Today we’ll be showing off 3.14.1592653 vs. 4.3, with Default settings - except that it’s on a Huge Galaxy, Ensign Difficulty, with the Prethoryn Scourge as the crisis. Autosaves were disabled on this run so they wouldn’t interfere with the recording. Both of these were run on the same higher end Windows machine, an i9-14900K with 32 GB of ram and a GeForce RTX 3060, and as some of these changes are hardware dependent we’re very interested in hearing about your performance experiences in the Cetus Open Beta.
Here’s a chart looking at seconds per year, generated from .tsv’s using the [c]-gamestatetimer[/c] command line parameter.
-gamestatetimer? Explain.
If you add [c]-gamestatetimer[/c] to the launch options of Stellaris, the game will generate a game state timer log in your logs directory.

My command line parameters.
This is a tab separated text file that looks something like this:
[c]Game Date Time Unit Seconds[/c]
[c]2200.01.01 Micro 0.000611[/c]
[c]2200.01.01 Micro 0.001599[/c]
[c]2200.01.01 Micro 0.006324[/c]
[c]2200.01.01 Micro 0.008577[/c]
[c]2200.01.01 Micro 0.000912[/c]
[c]2200.01.01 Micro 0.002078[/c]
[c]2200.01.01 Micro 0.000530[/c]
[c]2200.01.01 Micro 0.001898[/c]
[c]2200.01.02 Micro 0.073470[/c]
[c]2200.01.02 Micro 0.003261[/c]
[c]2200.01.02 Micro 0.000590[/c]
[c]2200.01.02 Micro 0.001874[/c]
[c]2200.01.02 Micro 0.001394[/c]
[c]2200.01.02 Micro 0.011386[/c]
[c]2200.01.02 Micro 0.001238[/c]
[c]2200.01.02 Micro 0.002009[/c]
[c]2200.01.02 Micro 0.000521[/c]
[c]2200.01.02 Micro 0.001725[/c]
[c]2200.01.03 Micro 0.023613[/c]
[c]2200.01.03 Day 0.047612[/c]
[c]2200.01.03 Micro 0.003535[/c]
[c][...And so on for a little over 1.2 million more lines][/c]
Importing this .tsv into a spreadsheet and filtering out Time Units to just show the Year entries will give you the time the year ending on that date took, just as if you had run the [c]one_year[/c] console command over and over again three hundred times.
Warning: These files can get pretty big, as they record the micro-tick times, and end up at about 30 MB of text for 300 years of game tracking.
The [c]-incrementalsaves[/c] launch option I have up there keeps save games at 2200, 2275, 2300, 2325, 2350, and every 50 years thereafter until 2600. We use them to look at the galaxy’s development in interesting automated runs.
[c]-loadrandomseed[/c] is used to reduce game divergence.

The 3.14 build started at 30.52 seconds per year, while our 4.3 build started faster than a month per second at 11.54. It took until 2269 for 4.3 to slow down to 3.14’s starting time, by which point 3.14 was taking 44.63 seconds per year.
The 4.3 game ended at 2500.01.01, we ended the 3.14 game halfway through 2506 because at that point it was already nearly two hours longer than the 4.3 video.
Here’s a chart showing the cumulative elapsed time it took each game to reach the specified game years.
We’re pretty happy with these improvements, but we’re also not quite done yet.
We’re updating the Cetus Open Beta today with a branch that has some more experimental performance updates. As this branch includes experimental changes, we’d like to remind people that we have a Cetus Rollback branch that uses last week’s build. In my internal tests, this build was about 4% faster than the main Cetus Open Beta, but we think we’re going to be able to squeeze a little more out of it.
Three games from an identical save, same random seed, i7-13700k w/32 GB RAM, RTX 3060 Ti
Here are the preliminary release notes for tomorrow’s Open Beta update:
Balance
Bugfix
Performance
Added experimental modifier threading changes to the Open Beta
Major rework of modifier calculations for Planets, PopGroups, Armies, Leaders, Ships and Fleets
We have a new feedback form available here.
This week’s update was a little light on balancing and bugfixing, so the design team will be shifting back to that, while the programming team is going to change focus to primarily stability and out-of-syncs. We’ll be keeping an eye on your performance feedback and metrics in the meantime.
Davide and I will also start streaming 4.3 today and every Thursday to show off some of the changes and answer your questions. Come distract me at critical moments so we get eaten by voidworms. Future weeks may have other guest stars there to answer more technical questions.

The next Stellaris dev diary will be on Feb 19th! We’ll likely be doing another review of the feedback thus far and some of the changes we made during those weeks based on it. See you then!