Performance test: basic belts vs underground belts

Post all other topics which do not belong to any other category.
User avatar
DaveMcW
Smart Inserter
Smart Inserter
Posts: 3724
Joined: Tue May 13, 2014 11:06 am
Contact:

Performance test: basic belts vs underground belts

Post by DaveMcW »

I set up a test to measure the cpu performance of basic belts and underground belts in Factorio 0.12.17. In each case I have 64 full belts moving items 1088 tiles.

You can download the save to test for yourself, just connect the top or bottom electric network and wait for the belts to fill up.
belt-performace-test.zip
performance-test.jpg
Basic belts
FPS/UPS = 13.9/41.6
Entity update: 23.923/22.933/25.798

Underground belts
FPS/UPS = 22.9/68.7
Entity update: 14.124/13.789/15.342

Underground belts are the clear winner. If you care about cpu performance, you should replace all belts longer than 5 tiles with underground belts.


I hope the developers can do more optimizations for long-distance belts. I think basic belts look much better than underground belts, and I hate being forced to replace them.
User avatar
Smarty
Global Moderator
Global Moderator
Posts: 816
Joined: Sat Oct 04, 2014 5:00 pm
Contact:

Re: Performance test: basic belts vs underground belts

Post by Smarty »

those are some pretty nice number dave

did you test with the other types of belts too?
Jaridan
Inserter
Inserter
Posts: 21
Joined: Tue Dec 30, 2014 2:54 pm
Contact:

Re: Performance test: basic belts vs underground belts

Post by Jaridan »

Doesn't this rely on the cpu you use? So, isn't this a non-issue for haswell + ?
User avatar
Xterminator
Filter Inserter
Filter Inserter
Posts: 981
Joined: Sun Jun 15, 2014 4:49 pm
Contact:

Re: Performance test: basic belts vs underground belts

Post by Xterminator »

I always somewhat figured that underground Belts would be a bit better performance wise than normal Belts, but it is good to know this for sure now. Thanks Dave!
It's actually a bigger difference than I would have thought. Definitely using !ore undergrounds in the future wherever I can. :)
Image Image Image
User avatar
Tev
Fast Inserter
Fast Inserter
Posts: 149
Joined: Sun Aug 02, 2015 7:42 pm
Contact:

Re: Performance test: basic belts vs underground belts

Post by Tev »

This is very good to know, thank you!
hoho
Filter Inserter
Filter Inserter
Posts: 681
Joined: Sat Jan 18, 2014 11:23 am
Contact:

Re: Performance test: basic belts vs underground belts

Post by hoho »

Jaridan wrote:Doesn't this rely on the cpu you use? So, isn't this a non-issue for haswell + ?
Having a faster CPU only means you can build a bit more stuff before performance becomes an issue. Underground belts are still more efficient even on a supercomputer :)


Also, note that I'm almost certain underground belts are more efficient when you use max lenght of them. If you put entry and exit right next to each other without any space, they are at least as slow, if not slower than normal belts. As was said in OP:

you should replace all belts longer than 5 tiles with underground belts
User avatar
Kewlhotrod
Fast Inserter
Fast Inserter
Posts: 166
Joined: Thu Apr 23, 2015 5:20 pm
Contact:

Re: Performance test: basic belts vs underground belts

Post by Kewlhotrod »

Jaridan wrote:Doesn't this rely on the cpu you use? So, isn't this a non-issue for haswell + ?
I have a i5 4690k still have 20fps on one of my maps. so not really.
kinnom
Filter Inserter
Filter Inserter
Posts: 706
Joined: Fri Dec 26, 2014 4:20 pm
Contact:

Re: Performance test: basic belts vs underground belts

Post by kinnom »

fps depends on your gpu. a stronger cpu only means more ups
no yes yes no yes no yes yes
orzelek
Smart Inserter
Smart Inserter
Posts: 3924
Joined: Fri Apr 03, 2015 10:20 am
Contact:

Re: Performance test: basic belts vs underground belts

Post by orzelek »

kinnom wrote:fps depends on your gpu. a stronger cpu only means more ups
Thats not entirely correct - scene still needs to be prepared and that goes on cpu. So good cpu helps always for both fps and ups.
ratchetfreak
Filter Inserter
Filter Inserter
Posts: 952
Joined: Sat May 23, 2015 12:10 pm
Contact:

Re: Performance test: basic belts vs underground belts

Post by ratchetfreak »

orzelek wrote:
kinnom wrote:fps depends on your gpu. a stronger cpu only means more ups
Thats not entirely correct - scene still needs to be prepared and that goes on cpu. So good cpu helps always for both fps and ups.
and opengl/directX11 adds quite a bit of overhead before things get to the GPU
Lee_newsum
Filter Inserter
Filter Inserter
Posts: 436
Joined: Wed Jan 15, 2014 9:41 am
Contact:

Re: Performance test: basic belts vs underground belts

Post by Lee_newsum »

My test useing this map
system intel I5-2400 3.10 Cores: 4, 32bit, 4GB RAM, Win7, factorio 0.12.17

load map FPS/UPS= 60.3/179.6 Entity update: 0.420/0.206/0.576

underground belts
man zoom out FPS/UPS= 26.5/79.4 Entity update: 11.622/8.891/15.749
min zome in FPS/UPS= 28.4/85.3 Entity update: 11.319/8.990/17.038

basic belts
man zoom out FPS/UPS= 12.8/38.5 Entity update: 23.158/18.916/30.919
min zome in FPS/UPS= 15.1/45.2 Entity update: 21.739/18.762/28.650
User avatar
ssilk
Global Moderator
Global Moderator
Posts: 12889
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: Performance test: basic belts vs underground belts

Post by ssilk »

Hm.

Some more experiments might be interesting... What is faster:

- Assembly: An empty assembly or a full assembly? A limiting smart inserter on the insert-side or on the output-side?
- An empty belt or full belt? Or a belt with only some items on it?
- inserting onto a full or empty belt?
- train transport vs. belt transport
- logistic bots vs. belt transport
- ...
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...
Rseding91
Factorio Staff
Factorio Staff
Posts: 14570
Joined: Wed Jun 11, 2014 5:23 am
Contact:

Re: Performance test: basic belts vs underground belts

Post by Rseding91 »

ssilk wrote:Hm.

Some more experiments might be interesting... What is faster:

- Assembly: An empty assembly or a full assembly? A limiting smart inserter on the insert-side or on the output-side?
- An empty belt or full belt? Or a belt with only some items on it?
- inserting onto a full or empty belt?
- train transport vs. belt transport
- logistic bots vs. belt transport
- ...
Assembling machines (provided they have no fluid in the results/ingredients) will take 0 CPU time when they can't work due to lack of items or too many items.

The same applies for transport belts. If the items aren't moving or if there are no items they take 0 CPU time.

As for the others, that depends on how they're used.
If you want to get ahold of me I'm almost always on Discord.
User avatar
ssilk
Global Moderator
Global Moderator
Posts: 12889
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: Performance test: basic belts vs underground belts

Post by ssilk »

I rebuild some parts of my factory to remove all items on belts, when the part of production is not used (was an really interesting task) and it brought some milliseconds. :)
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...
kovarex
Factorio Staff
Factorio Staff
Posts: 8207
Joined: Wed Feb 06, 2013 12:00 am
Contact:

Re: Performance test: basic belts vs underground belts

Post by kovarex »

I have plan for some hardcore belt optimisation for belts for the future. It would be especially effective for long belts.
User avatar
Nugetto
Burner Inserter
Burner Inserter
Posts: 16
Joined: Thu May 21, 2015 5:29 pm
Contact:

Re: Performance test: basic belts vs underground belts

Post by Nugetto »

Would the different belts/underground belts put more/less stress on the CPU?
ratchetfreak
Filter Inserter
Filter Inserter
Posts: 952
Joined: Sat May 23, 2015 12:10 pm
Contact:

Re: Performance test: basic belts vs underground belts

Post by ratchetfreak »

Rseding91 wrote:
Assembling machines (provided they have no fluid in the results/ingredients) will take 0 CPU time when they can't work due to lack of items or too many items.

The same applies for transport belts. If the items aren't moving or if there are no items they take 0 CPU time.

As for the others, that depends on how they're used.
not if they have to be rendered

you still need to push the position of the sprite at least to the GPU
vanatteveldt
Filter Inserter
Filter Inserter
Posts: 947
Joined: Wed Nov 25, 2015 11:44 am
Contact:

Re: Performance test: basic belts vs underground belts

Post by vanatteveldt »

If the fun in this game is derived from seeing a hugely complicated factory move around large numbers of goods in complicated processes, how can moving part of that underground possibly be a good idea? :)

I guess this (i.e. the pure fact that belts are a non-trivial performance drain) is also another argument for trying to eliminate belts wherever possible by feeding intermediate products directly into the next assembler.
kovarex
Factorio Staff
Factorio Staff
Posts: 8207
Joined: Wed Feb 06, 2013 12:00 am
Contact:

Re: Performance test: basic belts vs underground belts

Post by kovarex »

DaveMcW wrote:I set up a test to measure the cpu performance of basic belts and underground belts in Factorio 0.12.17. In each case I have 64 full belts moving items 1088 tiles.
This is 69 632 full belts, not something one would naturally build in a game. So unless you are building some huge monstrosity, it should be smooth.
But yes, optimising is always fun just to prove myself that I can push it further :)
SpeedDaemon
Fast Inserter
Fast Inserter
Posts: 124
Joined: Fri May 22, 2015 3:31 pm
Contact:

Re: Performance test: basic belts vs underground belts

Post by SpeedDaemon »

kovarex wrote:So unless you are building some huge monstrosity...
But... but... isn't that the whole point of this game?? :)

If your FPS isn't impacted, you're not done yet!
Post Reply

Return to “General discussion”