• We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.
How's Performance these days, with the latest Overlord patches? I haven't played the game in a while now. Doesn't seem to have gained many performance changes, or did it?
2000 pops in your empire (in 1K galaxy) is a measure when you will notice performance issues, until then it's fine.
the only cure from my XP against this is "slow" gameplay.
 
  • 1Like
Reactions:
i almost always play with max time speed.
and im having issues in many games. in some games i get to finish the endgame crisis.
but in others im just quitting and restarting the game. it just get too slow after 2350/2400.
i decreased logistic growth ceiling and increased growth required scaling. its a little bit better. i tried to play the small map, but no, its too small, so im still playing in medium size.

processor amd ryzen 5 2400G 3.6Ghz
i have only 8GB memory, maybe this is a problem for me.
 
i almost always play with max time speed.
and im having issues in many games. in some games i get to finish the endgame crisis.
but in others im just quitting and restarting the game. it just get too slow after 2350/2400.
i decreased logistic growth ceiling and increased growth required scaling. its a little bit better. i tried to play the small map, but no, its too small, so im still playing in medium size.

processor amd ryzen 5 2400G 3.6Ghz
i have only 8GB memory, maybe this is a problem for me.
You should be fine with that CPU on Large with a average number of empires, shouldn’t need to use Small / tiny. How many empires do you play?

If you play on steam I find a noticeable slower performance difference when not using the -dx11 switch in my steam launcher, equally if I use -OpenGL my game launch is a lot slower to launch and a bit worse performance generally.

worth experimenting with if you haven’t tried ^^
 
I haven't noticed a problem on my 12700KF.

Considering their single threaded performance, I'd say Alder Lake is probably the best choice for Stellaris - though the 5800X3D might very well be even faster. (Factorio loves the big cache might be similar with Stellaris)

5800X3D is easily the best CPU currently for Stellaris:


PS I wouldn't be surprised if Zen 4 with V-cache is like 20-30% faster still
 
  • 2Like
  • 2
Reactions:
2000 pops in your empire (in 1K galaxy) is a measure when you will notice performance issues, until then it's fine.
the only cure from my XP against this is "slow" gameplay.
I play in 600 Medium galaxy nowadays, it gets decent-ish speeds on my Thinkpad T430.
 
  • 1
Reactions:
Performance remains the biggest issue...

I recently upgraded my PC and now have the AMD Ryzen 9 5900X - which is likely the best CPU around both in terms of performance and value for money (here https://www.cpubenchmark.net/cpu_lookup.php?cpu=AMD+Ryzen+9+5900X&id=3870). The result? The game still becomes impossibly laggy on a large galaxy post 2450 on default pop growth etc - which is already a terrible nerf of the game.

Given the end year is, by default, 2500, this just isn't good enough. Suggestions on how to improve this (e.g. just halve the pops and make them twice as productive) have been around for years, and still the devs haven't fixed it.

I guess they never will.
 
  • 2
  • 2
Reactions:
Suggestions on how to improve this (e.g. just halve the pops and make them twice as productive) have been around for years, and still the devs haven't fixed it.
They already did that.
 
They already did that.
I think it's still not enough, because it only slows down the "late game lag" to much further year, it doesn't solve the core issue that pops causes Lag.

Pop system is an interesting mechanism in every paradox interactive games, each of them looks so differently.
But for stellaris fleets (graphical lag) and Pops exist at the same time could cause massive performance drain as both takes a lot of calculations.
It's a headache design as I have tried to think many ways on how to solve this issue while maintaining pops system, it's likely impossible..
Removing it or changing it into number based, will directly remove a lot of fun aspects from game..

or just play tall style game, with medium size of planet, that's how I play now, I never play largest map because I know it will slow down the game.
But with recent performance boost, the game works great actually, 600 stars, max ai, and the speed still acceptable for me (using faster, and it ticks well ,only a slight hang for monthly checking, until my 10x crisis comes)
 
Last edited:
To be honest they need to address things in a more systematic way. The "pop" problem is an assignment problem, these are well studied. The simplest methods solve it in about num_possible_assignments * min(jobs,pops) + pops^2 * log(pops). if you have 20 planets of 100 pops each (so 2k pops) that comes out to (100^2 * 2000 + 2000^2 * 7.6) = 50.4 million

Note: num_possible_assignments here is based on the planet size, assuming we're not assigning pops across planets (which the game doesn't do right now, that's handled after the fact and doesn't seem to cause problems).

if the weights are integers (which they should be able to be made to be) then you can do this in (num_assignments * sqrt(pops) * log(pops * max_weight). Note max weight is natural, no cheating. This comes out to about 100 * 44.7 * log(2000 * 200) = 57659

This gets better when things are chunked up so each pop type and each job type is dealt with as more of a unit, however it may be hard to prove that the solution generated is optimal.

For integer weights you can also formulate this as a liner programming problem, and that's how I'd do it if I wanted to generate an entire set of pop assignments every update. There's a rich field of dirty tricks you can use to speed up and tweak LP.

Ultimately though there's no reason every update has to find an assignment for every pop, if you don't have time to consider a pop it's probably fine to just leave them where they are, so long as you can find jobs for pops faster than pops can grow. There are a bunch of algorithms to do this in an incremental way, and indeed when we need to do it in the real world it's usually done incrementally. These may also be easier to modify while retaining their ability to produce a correct solution.


Addressing the pop problem in a systematic way would also mean they could actually solve it correctly. Right now the weights are basically arbitrary and ad-hoc. I would like to see the assignment algorithm be able to actually optimize for, say, maximal alloy production while still having a non-negative income for other resources.






Pathfinding is also much, much slower than it should be, probably because each entity that needs to pathfind does it anew, and because there's lots of portals and such that need to be considered, making correct heuristics difficult. If fleets are moving to a common destination you can share a bunch of computations. You can also do various caching and path propagation things to share even more data, but ultimately it might be best to just optimize the A* implementation (and reuse paths where it's easy). Ultimately doing pathfinding over a map of 2000 vertices (stars) that are pretty sparsely connected should not be causing lag.


Oh, and they should rebuild the linux version of the game with -fdefault-visibility=hidden -Wl,-Bsymbolic-functions -fno-semantic-interposition. Or even just hidden visibility, it's like a 2-5% perf difference between linux and windows and almost all of that is probably because of interposition semantics. They already have all the macros and stuff to handle symbol visibility since windows requires them. This would remove the "symbols" (not actually symbols) from the linux version of the game, in many cases.
 
I would also like to see pdx include some kind of perf tracing infrastructure for mods/scripts, and keep that in the released game for modders. There are many, many existing technologies for this and the typical approach is to do data collection in a tracepoint that's compiled to some properly aligned noops and the address placed in a static table (with appropriate relocations), to enable the tracepoint you go and write a jump or conditional (or the whole tracepoint) to that region of code, then insert a fence if needed (on x86 I don't think you really need them, even if you're about to execute the modified instructions).

On windows you use ETW for this, on linux there's USDT, among other technologies. There's also lots of ways to have the kernel conpire with you to reduce the perf impact of this kind of thing.
 
Performance remains the biggest issue...

I recently upgraded my PC and now have the AMD Ryzen 9 5900X - which is likely the best CPU around both in terms of performance and value for money (here https://www.cpubenchmark.net/cpu_lookup.php?cpu=AMD+Ryzen+9+5900X&id=3870). The result? The game still becomes impossibly laggy on a large galaxy post 2450 on default pop growth etc - which is already a terrible nerf of the game.

Given the end year is, by default, 2500, this just isn't good enough. Suggestions on how to improve this (e.g. just halve the pops and make them twice as productive) have been around for years, and still the devs haven't fixed it.

I guess they never will.
I have a Ryzen 5 5600x, I play on 1000 stars with zero growth nerf modifier, with x3 habitable planets (every colony is maxed out in terms of pop by that time), and it has a slight slowdown 300 years in. Nothing close to "impossibly laggy". Roughly a second to process each day. I would suggest perhaps something else in your setup might be ruining your game?

<>edit> I have
16GB Corsair VENGEANCE DDR4 3000MHz (2 x 8GB)
2TB SEAGATE BARRACUDA 120 2.5" SSD, (up to 560MB/sR | 540MB/sW)
6GB NVIDIA GEFORCE GTX 1660
 
Last edited:
  • 1
Reactions:
You can use the debug_stats command to get a somewhat numerical view of how long processing each day takes. I find average extra frame time climbs to 2-3 by 2350 or so on a medium galaxy. this is playable but annoying.

btw I strongly suspect that using a faster CPU will have little effect on how laggy the game is. I have to check but I suspect faster memory might make more of a difference (but not that much of one. It would be interesting to hear from someone who has really nice memory what its like at full speed compared to downclocked. I have the world's worst samsung b-die, so .... that's not me
 
I'm really curious how PDX games run on Alder Lake CPUs, with the hybrid architecture of performance cores vs efficiency cores.

We know that when the games start lagging, its because one core is being maxed out. So ensuring you have a CPU with the best single core performance is one way to help maximize performance in PDX games.

But do the games/operating systems/CPU make sure that the core being maxed out, is a performance core? I would hate to get an Alder Lake or soon Raptor Lake CPU, and find out PDX games run like crap on them, because the maxed out load ends up on an efficiency core. On the other hand, maybe these CPUs and their scheduling are fantastic for PDX games, even better in a relative sense. You'd think everything is smart enough to do this right, but you never know lol.

Sadly for alder lake laptops EU4 does not choose a performance core to max out. It maxes out an efficiency core and because of that the game is slower than it is on an apple Arm cpu. If you set affinity for 4-6 threads you can get better performance. So for instance HP Spectre i7 1255U does about 5 second month ticks with stutters with all cores being used (12 threads) stays between 3.4-3.5ghz. If you set affinity for 4 cores you get 3.4-4 second month ticks at speed 5 and 4ghz. From my testing 6 threads seems to be the best and most stable performance and stays at around 3.8-3.9ghz with same month tick as 4 threads sometimes faster. On desktop i did not notice this same behavior as month ticks will pass in the 2 second range. I have not tested HOI4 or Stellaris on this machine (the spectre) but i can update when i do.
 
Don’t forget that I think their scripting guy is / was looking at multi threading enhancements over the summer. So something might be lurking in a patch soon, maybe anyway.
 
  • 1Like
Reactions:
Yea but it’s an absurdity that this game runs so bad on alder lake laptops because the game pegs the first available efficiency core. So every time I play if I want to have an alder lake laptop I need to change affinity to 6-8 threads and I see a 25% increase in speed 5.
 
I will be going from an 8700K @ 4.4ghz to a 5800X3D. I will post some results when I get everything set up later. The 5800X3D is known for being the best CPU for Paradox games. It won't be an extensive benchmark but I hope to get a general idea of how much of a performance gain going from an older CPU to a modern one will give someone. Most tests seem to put the 5800X3D against other modern CPUs.
 
  • 2Like
  • 1Love
  • 1
Reactions:
I will be going from an 8700K @ 4.4ghz to a 5800X3D. I will post some results when I get everything set up later. The 5800X3D is known for being the best CPU for Paradox games. It won't be an extensive benchmark but I hope to get a general idea of how much of a performance gain going from an older CPU to a modern one will give someone. Most tests seem to put the 5800X3D against other modern CPUs.

Looking forward to your results!

AMD plan to release some laptop processors based on their desktop versions, code-named Dragon Range. I hope they do an X3D version too as that would be awesome.

PS How are people finding 3.5 so far in terms of performance? To me it feels a small step better but still a long way to go.
 
a few new postings in the last days here, so I'll add my experience:
I don't know why, but in the 3.5 version (latest non-beta) of the game it is now in the year 2571 almost unplayable.
Okay - I play with a big galaxy, and all extensions are on. But no mods.

Contentwise: the awakened empires are done, and the end game crisis also. Oh, and I play as toxoid on the biological path, all species in my empire are fully genetically optimized.
1666197277886.png


I understand that a Ryzen 3700X and a Radeon RX 6700XT with 16 GB RAM is not high-end. But anyhow, I am frustrated. I'm not done with this galaxy, and I have to abandon it just because of performance. Not cool.