TL;DR
Speed improvementsWhat ?
1. Have a flag on inserter to only start moving when have full stack to grab. Alternatively, when "override stack size" is set, use that as the exact amount to grab.2. Have a flag on roboport(s) to only pickup once there is >= carrying capacity in the chest (robot should be dispatched to the chest, but not pick up the item until its carrying capacity is fully used). Alternatively, setting on the chest.
In both cases, it will prevent the wakeup lists for the derived entities from waking up. It also has the advantage of visually showing the amount of resources moved.
3. Increase minimum in-factory input and output buffer to that of 2x stack inserter capacity. Otherwise 1. wouldn't work.
4. Train destination algorithm needs to take into account the number of trains heading to station for stations with shared names.
IE, right now when a train leaves a station X, ALL waiting trains in the network that is destined for station X will converge on that free station. The end result is that you have alot of trains cycling around chasing that free station. If the station kept track of amount of incoming trains when calculating cost, then most of the time, only 1 train would attempt to go there.
5. Electricity is something everyone aims to be > 100%, so therefore the system should assume that is the normal case. If one assumes that, you can trade off accuracy for speed, there is no particular reason for that calculation to take >5% of the update cycle. Right now, the power use and power generation is calculation in each tick, however it would not alter the game much if it is was done once per second instead. e.g. in a tick, record the power use and power generation, and then for every second use the previous second % of power.
6. Roboports are either lacking an indicator when 'show-active-state' is on, or they are always processed.
7. Inserters that grab from the ground are always active, or 'show-active-state' indicator is broken.
8. Radars are always active, or 'show-active-state' indicator is broken for them.
9. Please hide zeros when showing 'show-active-entities-on-chunk-counts' and don't display in minimap.
10. Miners and factories are active in every tick, despite the fact that they don't interacts with the world until they need to output an item. I assume the reason is productivity during power shortages (or in worst case someone has mixed the animation with the update loop), but since our assumption is that power >100%, combined with 5. it should only need to wake up once a second (atleast for that reason).
11. Rework fluid dynamics, so it is sleepable. Right now, a nuclear powered bot-based factory will spend about ~30% of the update loop in active fluid elements alone.
12. Turn of render loop when factorio is minimized.