Logistics Pipes

Logistics Pipes

13M Downloads

fyi profiling

AartBluestoke opened this issue ยท 5 comments

commented

https://docs.google.com/file/d/0B93bqeFAXRZwLXBSNHdwWUVTT1U/edit

during this time 4 quarries were running at max speed, and a filler was filling stone bricks crafted from cobble.

a large barrel and crafting table wall exist (large = most items available)


pipes:18.5%

higher than expected cpu usage: providers (4.4%). most ticks items would be doing something somewhere, so continually refreshing inventory is the single biggest usage of cpu in logistics pipes.

that comes down to calculating the hashcode for the item from some underlying hashMap.

transport.pipe.update (4.1%) - nothing unexpected

  • logic updates (1.8%) is All
    -- checkCrafting, checkProviders (1.8%) - could be optimized allot?
  • buildcraft - pipeTransport.performRemoval (1.9)
  • itemEntering.resolveDestination (0.1)

chasi modules (2.5%):

  • qsort (0.9%) (extractor (0.8) has the same pattern)
    -- !! getLogisticsModules (0.4) inside hasDestination
    -- sharesInventoryWith (0.2)could be moved to the inner loop, after provider/sink has decided that it matches the request, but at the inner most check, i'm not sure ifit has the source of the request.
    -- module provider (0.5%) is all getAllItems, like the pipe.
    also, is iterating over an ArrayList linearly for most of its time

serverRouter.update (1.7%) is almost all recheckAdjacent, and that is almost all getConnectedRoutingPipes, which is recursive, and spends most of its time getting blocks form the world.

wood pipes in this network consume 1.8%

pipes 18.5
mobs 11%
lasers 2.4%
(total listed about 30 of the 48% of tick)
world stuff 29%


tl;dr
provider modules rechecking their inventory is the single biggest cpu use (of the server).
following this is building crafter and provider lists. these need to be merged, presorted, and cached in the routing update.
and finally, getting the logistics modules for chassi seems to be taking a fair bit of ongoing cpu.

full nps
https://docs.google.com/file/d/0B93bqeFAXRZwLXBSNHdwWUVTT1U/edit?usp=sharing

commented

closing as this profile is quite out of date - most things which take cpu time in here no longer do so.

commented

how can you get such profiling informations? Is this a special mod or command?

commented

come chat on IRC -- irc.esper.net channel #RS485

It's using jvisualvm, which is part of the sun JDK java install (in the bin folder) .. sampling information (not profiling)

commented

how can you get such profiling informations

and houw instal them want to knouw my info to

commented

AartBluestoke said

It's using jvisualvm, which is part of the sun JDK java install (in the bin folder) .. sampling information (not profiling)