Most/least efficient block(s) for 1.6.4 item automation ?

  • The FTB Forum is now read-only, and is here as an archive. To participate in our community discussions, please join our Discord! https://ftb.team/discord

MigukNamja

New Member
Jul 29, 2019
2,202
0
0
For some (incorrect) reason, I had assumed vanilla hoppers were relatively efficient. I mean, what's so complicated about them, right ?

Well, they are extremely inefficient. I have only ~30 or so hoppers in my world, and according to TickProfiler, they are chewing up more than 2.5ms (more than 5%) of the allotted tick time:

Code:
Profiling for 30 seconds in all worlds
2014-08-13 08:18:04 [INFO] [TickProfiler]
TPS: 20.0
                Single Entity | Time/Tick |      %
TileEntityHopper 262,78,204:0 |    1.065 | 21.815
TileEntityHopper 262,78,208:0 |    0.802 | 16.435
TileEntityHopper 227,69,204:0 |    0.106 |  2.165
TileEntityHopper 227,69,202:0 |    0.092 |  1.888
TileEntityHopper 227,60,204:0 |    0.078 |  1.590
...
All Entities of Type | Time/Tick |      %
    TileEntityHopper |    2.664 | 54.562
...
Average Entity of Type | Time/tick | Calls
      TileEntityHopper |    0.049 | 32400
...
*I am not using TickThreading, just TickProfiler.

Indeed, a single hopper is chewing up more than 1ms of CPU time per tick !! If I had close to 50 of those, it would bring my server to its knees. And, my server CPU is no slouch. It's a brand-new Intel i5 4590S (65w version).

But, the question is : replace with what ?

What is the most efficient item automation block in 1.6.4 ? ME Buses ? TE3 itemducts ? ExUt transfer nodes ? GT item pipes ? BC pipes ? Jabba w/hopper upgrade ? Other ?
 

MigukNamja

New Member
Jul 29, 2019
2,202
0
0
First, have a slap for thinking mojang would code anything efficient...t
thank-you-sir-may-i-have-another-o.gif

Do you have the small mod by prof mobius that improves the performance of Hoppers (and furnaces)? http://www.mobiusstrip.eu/2013/12/05/evoc-1-0-0-mobiuscore-1-0-4/
Have you tried Pnumaticrafts Hoppers?

I do not ! I will try yet another of ProfMobius' excellent mods. Another clue that vanilla hopper code was horrible was Jabba barrels w/hopper upgrades. They don't come close to showing up on the "sh*t list" of tick gluttons.
 

Golrith

Over-Achiever
Trusted User
Nov 11, 2012
3,834
2,137
248
Be interesting to see the profile results after installing that mod. Plus saves having to redesign anything.
 
  • Like
Reactions: MigukNamja

MigukNamja

New Member
Jul 29, 2019
2,202
0
0
Be interesting to see the profile results after installing that mod. Plus saves having to redesign anything.

Good point.

*adds Evoc to server*

Survey says !!

Code:
Profiling for 30 seconds in all worlds
2014-08-13 09:45:43 [INFO] [TickProfiler]
TPS: 19.999332
                Single Entity | Time/Tick |      %
TileEntityHopper 262,78,208:0 |    1.072 | 21.010
TileEntityHopper 262,78,204:0 |    1.002 | 19.635
EntityButterfly 224,73,208:0 |    0.115 |  2.263
TileEntityHopper 227,69,204:0 |    0.082 |  1.599
TileEntityHopper 227,69,202:0 |    0.075 |  1.464
    Chunk | Time/Tick |      %
0: 16, 13 |    1.697 | 33.255
0: 16, 12 |    1.547 | 30.318
0: 14, 12 |    0.458 |  8.978
0: 15, 12 |    0.454 |  8.886
0: 17, 12 |    0.251 |  4.927
All Entities of Type | Time/Tick |      %
    TileEntityHopper |    2.636 | 51.643
...
Average Entity of Type | Time/tick | Calls
      EntityButterfly |    0.060 |  1200
      TileEntityHopper |    0.049 | 32400
...

Hmm...not much help. However, Evoc does not optimize the hopper in all cases, specifically the case where it's being used and not full. I believe the two 2 top-offending hoppers are being used constantly, but aren't full. I'll keep Evoc on the server, but will be replacing vanilla hoppers with something else.
 

madnewmy

New Member
Jul 29, 2019
1,119
0
0
Me is fairly laggy too.

Have you tried hopperduct?

I know transfer nodes with a lot of upgrades creates decent lag, but without a lot, it dosent seem too, might want to check.

Stevefactory manager might be another choice for you. A bit more investisment to get it too work ;)
 
  • Like
Reactions: MigukNamja

FyberOptic

New Member
Jul 29, 2019
524
0
0
Part of what makes hoppers so slow is that they're testing every slot of an inventory to see if the item can stack with what's there, or to go into an empty space. If you're trying to hopper an item into a really large inventory, and one which is very full already, then it's going to contribute to lag.
 
  • Like
Reactions: MigukNamja

Peppe

New Member
Jul 29, 2019
836
0
1
What is the most efficient item automation block in 1.6.4 ? ME Buses ? TE3 itemducts ? ExUt transfer nodes ? GT item pipes ? BC pipes ? Jabba w/hopper upgrade ? Other ?

I have not seen any definitive tests on this and would be curious to know the answer as well.

Does extra utilities do instant transfer? And steves factory manager?

My guess is Ender IO and ME would be high on the efficiency due to the instantaneous item transfer. Think Ender IO might have the advantage since it does not need a controller and other ME bits and pieces.

Systems that actually do block to block transit I think would have extra overhead compared to the instant transfer methods.
 
  • Like
Reactions: MigukNamja

MigukNamja

New Member
Jul 29, 2019
2,202
0
0
What is the problematic hopper actually doing?

The 4 worst hoppers at the time were feeding a couple of Forestry Multifarms with dirt, fertilizer, bog earth, and fertilizer. They have JABBA barrels on top. Based upon @FyberOptic's comment, I'm guessing the Multifarms' high number of inventory slots is a contributing factor.

I upgraded their respective JABBA barrels with a hopper upgrade and hopper facade each, and the total hopper tick usage is down significantly, though there are still some other hoppers I haven't replaced yet due to not having the technology (yet) in my InfiTech world. A cow is now my 5th worst tick offender :)

My worst 2 hoppers now (below @ 262, 78, 204 and 208) are full, and feeding GT Industrial Centrifuges. There *should* only be a few input inventory slots, and then 4 output slots. However, do GT machines have a lot of (inaccessible) inventory slots ?

Code:
2014-08-14 08:14:48 [INFO] [TickProfiler]
TPS: 19.999332
                Single Entity | Time/Tick |      %
TileEntityHopper 262,78,204:0 |    0.861 | 17.521
TileEntityHopper 262,78,208:0 |    0.732 | 14.895
TileEntityHopper 227,60,204:0 |    0.064 |  1.299
TileEntityHopper 227,60,202:0 |    0.063 |  1.273
passive.EntityCow 290,59,188:0 |    0.042 |  0.848
    Chunk | Time/Tick |      %
0: 16, 12 |    1.409 | 28.674
0: 16, 13 |    1.404 | 28.571
0: 15, 12 |    0.586 | 11.918
0: 14, 12 |    0.326 |  6.638
0: 17, 12 |    0.238 |  4.838
All Entities of Type | Time/Tick |      %
    TileEntityHopper |    2.027 | 41.251
    TileGenericPipe |    0.485 |  9.873
    TileAlvearyPlain |    0.398 |  8.091
  gadgets.TileApiary |    0.393 |  8.003
  TileConduitBundle |    0.308 |  6.276
Average Entity of Type | Time/tick | Calls
    factory.TileQuarry |    0.041 |  600
      TileEntityHopper |    0.040 | 30600
  gadgets.EngineCopper |    0.018 |  1200
  TileEntityInduction |    0.017 |  600
  EntityMechanicalArm |    0.017 |  600

Have you tried hopperduct?

No, but I like the look of this mod. The basic ducts won't/can't pull from inventories above it. I guess this was done on purpose for balance reasons to not completely replace hoppers. The grated hoppers, however, may be implemented more efficiently, code-wise, than vanilla hoppers.
 
Last edited:

Peppe

New Member
Jul 29, 2019
836
0
1
What would be an inventory challenge template?

I tried to use a bunch of hoppers with extruders filling up chests and the hoppers moving the cobble around, but in locally hosted flat world I got 0 tick time impact.
 

MigukNamja

New Member
Jul 29, 2019
2,202
0
0
What would be an inventory challenge template?

I tried to use a bunch of hoppers with extruders filling up chests and the hoppers moving the cobble around, but in locally hosted flat world I got 0 tick time impact.

Try GT Industrial Centrifuges. My high-tick-usage hoppers are feeding into those. I have one full of redstone (to make ruby dust) and another full of something else. I don't think the material matters. I think it's a hopper --> GT inventory issue.

Tonight, I'll try replacing those with JABBA barrels w/hopper upgrades like I did with my multifarms and see if that resolves the issue.

The thing is, hoppers and the like are perfect for this kind of job. I'm tempted to make my own hopper replacement mod that does something sane like 1-sec (once every 20 tick) updates rather than per-tick updates and also has options for singe-item-type hopping vs. multiple item-type. That would cut down on the insertion attempts by 5x. So, the total reduction from just those 2 changes alone should be 100x.
 

Pyure

Not Totally Useless
Aug 14, 2013
8,334
7,191
383
Waterloo, Ontario
I've never understood translocators or why they're considered so useful. I'm terrible at creative thinking in minecraft.

MigukNamja, your hopper idea for 1/s isn't bad except when the target expects much faster results. I don't think any centrifuge recipes are that quick, but there are some 0s canning-machine recipes iirc, and your hopper would become a bottleneck.
 

Nanolathe

New Member
Jul 29, 2019
42
0
0
Connecting several inventories via a single "empty space" block with Filtered transfer and number regulation of items and liquids (with a very fast transfer speed) between inventories can be very helpful in compact spaces.
 

MigukNamja

New Member
Jul 29, 2019
2,202
0
0
Vanilla hoppers are very bad. They only move 1 item - yes, item, not stack !! - roughly per second, but are coded for per-tick updates. When I watch them move stuff, it's about 1 item per second.

This throughput is fine for early game automation. However, the coding is teh suck.
 

Pyure

Not Totally Useless
Aug 14, 2013
8,334
7,191
383
Waterloo, Ontario
Vanilla hoppers are very bad. They only move 1 item - yes, item, not stack !! - roughly per second, but are coded for per-tick updates. When I watch them move stuff, it's about 1 item per second.

This throughput is fine for early game automation. However, the coding is teh suck.
You know what, I think I'm thinking of those "speedy" hoppers or whatever they're called. My Horizons game had several flavors of hoppers as I recall.

You're right, standard hoppers would be useless in my canning-station scenario.

btw I wonder if those flavoured hoppers are coded any better.