Factorio

Factorio

View Stats:
how to improve performance (ups)
title,

when doing a mega base, i try to use underground betls as much as i can.
when dealing with liquids i try to use closed systems, and move the liquids through on belts through underground belts.
i also use solar power since the game seems to register it as 1 giant solar panel.

is it true that the game runs on only 1 core?
can i make it run on multiple cores to increase performance?
< >
Showing 1-6 of 6 comments
piccolo255 Feb 5, 2019 @ 9:24am 
Originally posted by Minho A7:
is it true that the game runs on only 1 core?
No. There's some multithreading. It's not completely multithreaded, devs have written about the difficulty of implementing that in several devblogs, if you're interested in reading about it.

Originally posted by Minho A7:
can i make it run on multiple cores to increase performance?
No, not beyond what it already does. Generally speaking, making a program run on multiple cores (or improving parallelization if it already does) requires access to source code, and some very, very difficult and time-consuming refactoring. So unless you're a whiz computer programmer and get hired by Wube, you can't do that :)

Edit: Oh yeah, general tips. Turn off biters. Use heavily beaconed setups to reduce the number of entities. Compress belts. Use a mod to remove doodads (grass etc) from the map. Use a mod to delete empty chunks.
Last edited by piccolo255; Feb 5, 2019 @ 9:29am
impetus_maximus Feb 5, 2019 @ 9:42am 
belts got optimized in 0.16. i don't think underground belts will yield any benifit. i think bots are still the way to go for going MEGA. i can't advise how to set them up. i use bots on a very limited scale. belts and trains for me.

the fluid system does chew up UPS (which is getting optimized in 0.17)
solar is the way to go for now for reason you stated.

enemies that are in polution and moving take a HUGE chunk of processing power. if you really want to go MEGA, i would play without enemies.

the game already uses multiple cores. 1 for calculations. 1 (or more) for rendering which you can change in settings. another for revealing the map, and possibly net code for multiplayer.

the reason the game uses 1 core for calculations is the game is deterministic. while it's possible to have a multi-core deterministic program, the bottleneck will more likely be your RAM speed. Factoio has great CPU throughput. going multi-core would add latancy to ram, and probably end up making UPS worse. there is an interview on youtube with Kovarex talking about this (english subtitles).

if you really want to increase UPS, get as fast of RAM as possible.

i suggest disabling hyperthreading on 4+ core systems.

if you are in windows you can change performance options which may help.
https://www.factorio.com/blog/post/fff-261
or...
if you are an overclocker, disable C-states and set your mulitplyer in BIOS so your processor is at max clock %100 of the time. (mine is @4.3Ghz at all times)

you can also download the package version of the game so you don't have to run steam. less programs you have running in the background the better.

change background programs to lower priority. set factorio to high priority.

my 2¢ are spent. *note i could be wrong about everything.
cheers
D Ravenheart Feb 5, 2019 @ 9:55am 
thx for the reactions,
i still feel like that the main potential lies in the way the game deals with a processor. but that is not for me to improve.

my system is overclocked, i have a custom water loop and and delidded my i7 7700k
but i still reach a state where the game just feels unpleasant because of the UPS.

lets see what the future brings
Killcreek2 Feb 5, 2019 @ 11:49am 
Lots of good tips there! I can only add a few more minor ones:

- Disable pollution along with biters.

- Set CPU affinity for Factorio to not include core 0 (as that tends to be default core used by the OS, at least for Windoze).

- edit Direct-insert wherever possible (even oil processing ~ this means no pipe junctions, unless absolutely required).

Regarding bots:

- Keep the seperate networks as small as possible, & dedicated for very specific jobs (compact designs = shorter journeys = better UPS).

- Get at least bot worker speed Lv 10 research completed (as this directly reduces total bots needed for same level of item throughput), more research is better but suffers diminishing returns.
Last edited by Killcreek2; Feb 5, 2019 @ 11:52am
impetus_maximus Feb 5, 2019 @ 1:15pm 
Originally posted by Killcreek2:
- Set CPU affinity for Factorio to not include core 0 (as that tends to be default core used by the OS, at least for Windoze).

that is a good tip. *thumb up
Peter Feb 5, 2019 @ 6:22pm 
Originally posted by Killcreek2:
- Set CPU affinity for Factorio to not include core 0 (as that tends to be default core used by the OS, at least for Windoze).

This is something I would highly recommend leaving alone. Windows does not live exclusively on the first core of a CPU, and unless you're running a CPU from the Vista days the CPU and OS are going to do a good to great job of processor scheduling.
< >
Showing 1-6 of 6 comments
Per page: 1530 50

Date Posted: Feb 5, 2019 @ 9:10am
Posts: 6