Optimizing a factory for a memory constrained computer

factorio

Despite my desktop having more memory and a faster CPU, Factorio runs much slower on it than it does on my MacBook Pro because of my motherboard's memory limitations. Rather than drop $300 on an upgraded motherboard and memory and in true Factorio style I prefer to optimize my factory.

Is there anything in particular I can design into my base to make it less memory-intensive?

I have:

  • a 2×4 fully saturated nuclear power plant
  • enough beaconed furnaces to output 9 full blue belts of resources
  • 10 resource outposts
  • a laser+gun+flame wall
  • a rectangular base with complete logistic coverage from a 10×15 roboport grid

I've tried the show-active-entities-on-chunk-counts from the F4 menu and it doesn't seem to correlate with the slowdown, but I can't be sure. I see TONS of data on F5, but it's hard to tell what might be relevant.

Which parts of my base likely take up most of my memory bandwidth? Then I can focus on optimizing or eliminating them to improve my UPS.

Best Answer

Avoid exploration and expansion

Every map section your reveal consumes memory. Every biter nest on those map sections spawns biters. Those are lots and lots of entities.

Avoid pollution

More pollution = more biters = more entities to handle.

A good way to reduce pollution is to use efficiency modules. They reduce pollution twofold. Indirectly by reducing your need to generate electricity and also directly by reducing the pollution output of the machine they are in.

Avoid long and full conveyor belts

Every object on a belt is a separate entity. So try to keep your production lines short. On the other hand, a stack of objects in a container is just a number.

  • So if you need to transport large quantities of stuff over longer distances, use trains.

  • When you need to transport small quantities of stuff, consider to do it manually by car. Collect your production in chests. Get as much in your car and inventory as fits. Then store it in chests at the destination. You can use alarms to remind you that you need to restock something.

  • You can also try to avoid belts by using inserters to pass items directly from one machine to the next.

Prefer better machines over more machines

More assemblers = more entities. They also require more space, which contributes to the first point (avoiding expansion) and third point (avoiding long belts). So if you need to improve your productivity, use modules. Beacons can get you even more production out of each machine. You should also upgrade your whole factory to type 2 and type 3 assembing machines as soon as you can, because they work faster and can take more modules.