Factorio

Factorio

View Stats:
frognik Aug 7, 2018 @ 3:46am
This game is weird.
The game has been running for 8 days straight and it has not yet crashed itself.
< >
Showing 16-21 of 21 comments
Name Lips Aug 16, 2018 @ 5:49am 
Originally posted by Name Lips:
Originally posted by piccolo255:
Probably depends on the exact entities and effects on the screen. I checked it out a bit just now, and over the center of my base FPS/UPS fell down to 45/60, but CPU usage hovered over ~20% the entire time (for each core), so CPU is not the bottleneck. On the other hand, GPU usage also hovered around 20%, so GPU itself is not the bottleneck either. At this point, I'd guess on my PC it's either the CPU-GPU communication pipeline, or video memory bandwidth (there's a lot of sprites, and sprite atlases, i.e., textures, are pretty big - video memory usage is ~50%).
Maybe it's raw RAM? Just not enough memory to store the information being displayed? You'd think that GPU RAM would fix that, though. Sprites can't use up THAT much memory.

Just another random thought while I was typing: Factorio can't use multithreading, for reasons they went into exaustive detail explaining in a Friday Facts. It's limited to using a single core of the CPU. So maybe the 20% CPU usage you're observing is roughtly one core of use.
And that lends credence to the proposal that a 15 year old machine might run Factorio just fine. CPUs these days use anywhere from 4 to 8 cores to get their raw speed. But 15 years ago we were largely limited to one or two cores, which individually might not have been that much faster than the individual cores in our modern CPUs.
piccolo255 Aug 16, 2018 @ 6:04am 
Originally posted by Name Lips:
Maybe it's raw RAM? Just not enough memory to store the information being displayed? You'd think that GPU RAM would fix that, though. Sprites can't use up THAT much memory.

Just another random thought while I was typing: Factorio can't use multithreading, for reasons they went into exaustive detail explaining in a Friday Facts. It's limited to using a single core of the CPU. So maybe the 20% CPU usage you're observing is roughtly one core of use.
Nope to both things.

I have 16 GB of RAM, ~8 GB of those was free.

I wasn't quoting the CPU average, but per-core stats - I specifically said "~20% (for each core)" to avoid that confusion :) Each of the 4 cores had ~20% usage. (And yes, I'm sure; I use OpenHardwareMonitor for detailed per-component plots of my PC's performance - GPU core, CPU cores, voltages, temperatures...)

BTW, Factorio does use multithreading![www.factorio.com] It's just that there's always a limit as to how much work can be offloaded to separate threads, and for Factorio that limit is pretty low. In particular, render and update are on separate threads.

Originally posted by Name Lips:
And that lends credence to the proposal that a 15 year old machine might run Factorio just fine. CPUs these days use anywhere from 4 to 8 cores to get their raw speed. But 15 years ago we were largely limited to one or two cores, which individually might not have been that much faster than the individual cores in our modern CPUs.
Nope. Again, it's multithreaded :)
Last edited by piccolo255; Aug 16, 2018 @ 6:05am
Name Lips Aug 16, 2018 @ 7:36am 
Originally posted by piccolo255:
Originally posted by Name Lips:
Maybe it's raw RAM? Just not enough memory to store the information being displayed? You'd think that GPU RAM would fix that, though. Sprites can't use up THAT much memory.

Just another random thought while I was typing: Factorio can't use multithreading, for reasons they went into exaustive detail explaining in a Friday Facts. It's limited to using a single core of the CPU. So maybe the 20% CPU usage you're observing is roughtly one core of use.
Nope to both things.

I have 16 GB of RAM, ~8 GB of those was free.

I wasn't quoting the CPU average, but per-core stats - I specifically said "~20% (for each core)" to avoid that confusion :) Each of the 4 cores had ~20% usage. (And yes, I'm sure; I use OpenHardwareMonitor for detailed per-component plots of my PC's performance - GPU core, CPU cores, voltages, temperatures...)

BTW, Factorio does use multithreading![www.factorio.com] It's just that there's always a limit as to how much work can be offloaded to separate threads, and for Factorio that limit is pretty low. In particular, render and update are on separate threads.

Originally posted by Name Lips:
And that lends credence to the proposal that a 15 year old machine might run Factorio just fine. CPUs these days use anywhere from 4 to 8 cores to get their raw speed. But 15 years ago we were largely limited to one or two cores, which individually might not have been that much faster than the individual cores in our modern CPUs.
Nope. Again, it's multithreaded :)
So, if Factorio isn't using very much of your RAM, and isn't straining your CPU, and is hardly making the GPU sweat... what is it that causes UPS drops? It seems if the game was poorly optimized, we'd have the raw power to make up for it. You suggested earlier the pipeline between components, which comes down to the quality of your motherboard and how quickly it can move information between components, but I don't think I've ever seen that be the main bottleneck of a game before.
piccolo255 Aug 16, 2018 @ 8:00am 
Originally posted by Name Lips:
So, if Factorio isn't using very much of your RAM, and isn't straining your CPU, and is hardly making the GPU sweat... what is it that causes UPS drops? It seems if the game was poorly optimized, we'd have the raw power to make up for it. You suggested earlier the pipeline between components, which comes down to the quality of your motherboard and how quickly it can move information between components, but I don't think I've ever seen that be the main bottleneck of a game before.
It seems we have a slight misunderstanding - I was speaking specifically about FPS drops when UPS is still a smooth 60. When I said "FPS/UPS fell down to 45/60", I meant that FPS fell down to ~45 while UPS was still 60. I haven't built a megabase for a while now, but IIRC, my UPS starts falling when one core hits 100%, so the simulation part is CPU-bound.

What I'm saying is that, on my machine, the rendering part is not CPU-bound (since I'm getting FPS drops with ~20% CPU core), nor GPU-bound (again, FPS drops with ~20% GPU), nor memory-bound (~8gig of free RAM), nor video memory bound (~50% free), which leaves memory access speed, video memory access speed, and data transmission between them.

That being said, Factorio is a simulation game, and I work on computer simulations (not games, but physics - close enough). With simulations, memory access speed can be (...and very often is...) a major bottleneck. Same with video memory when running simulations on the GPU (CUDA). With GPU simulations, the slowest part of the program is usually transmission of data between main memory and video memory.

You almost never see memory speed as a bottleneck in games 'cause most of them are GPU-bound, and even if they need a lot of memory to run, they don't really access it all that often. Most of that memory tends to be used for textures and stuff like that anyway.
Ryan Aug 16, 2018 @ 4:49pm 
Here's a related post. In my old PC, the RAM speed was the bottleneck in this game. No CPU core was maxed, and my GPU was not maxed. Every game entity is stored in RAM, and as those entities get moved and transformed around the map, they are constantly moving from RAM to CPU to RAM.

https://steamcommunity.com/app/427520/discussions/0/1474221865189830016/

Here are some links showing the effect of RAM speed on the game:
Factorio RAM benchmarks: https://docs.google.com/spreadsheets/d/1-zJqfZ9NpiEAveltOfBoICgT5dTbETb1nz5ZmuySX7A/edit#gid=1699517607

Factorio RAM Timings: https://imgur.com/2FPr3su

Factorio Performance Test: https://www.reddit.com/r/factorio/comments/4h647g/factorio_performance_test_cpuram_based_fpsups/
Originally posted by Name Lips:
Originally posted by piccolo255:
Probably depends on the exact entities and effects on the screen. I checked it out a bit just now, and over the center of my base FPS/UPS fell down to 45/60, but CPU usage hovered over ~20% the entire time (for each core), so CPU is not the bottleneck. On the other hand, GPU usage also hovered around 20%, so GPU itself is not the bottleneck either. At this point, I'd guess on my PC it's either the CPU-GPU communication pipeline, or video memory bandwidth (there's a lot of sprites, and sprite atlases, i.e., textures, are pretty big - video memory usage is ~50%).
Maybe it's raw RAM? Just not enough memory to store the information being displayed? You'd think that GPU RAM would fix that, though. Sprites can't use up THAT much memory.

Just another random thought while I was typing: Factorio can't use multithreading, for reasons they went into exaustive detail explaining in a Friday Facts. It's limited to using a single core of the CPU. So maybe the 20% CPU usage you're observing is roughtly one core of use.

it good to disable smoke as for instance my PC it will ridiculesly lower FPS in big/medium bases

so fiddle with your options if its not running well

this game can run even on my 7 year old laptop who is ancient by now and was just "ok gaming laptop" when i got it when it was new
< >
Showing 16-21 of 21 comments
Per page: 1530 50

Date Posted: Aug 7, 2018 @ 3:46am
Posts: 21