Jump to content
Sign in to follow this  
Baphnedia

Possible clue for high ping from raw-* turrets

Recommended Posts

Since running into high ping issues with end-game r-salvaging and r-mining turrets, I went about using turret engineering to bump the efficiency of standard salvaging turrets.  I used to think it had to do with the spawning of entities and such as lots of blocks were quickly converted into scrap metal or ores; but even when regular salvaging lasers are tearing through wrecks quickly, I don't get the same ping issue.

Often, when lots of cargo is dropped by a destroyed station you get a similar (yet not persistent) lag spike.  What I think is going on is the following: 
1.  Block of resource asteroid or block of ship is harvested by an appropriate r- turret.
2.  As a part of spawning each new entity (be it scrap metal or ore), a boolean check is made against every item that has an associated cargo space.  I'm not sure how many checks that is, but it is a match process done against the whole table (I think). 
3.  Each entity gets spawned (but the number of checks being called can quickly tie up bandwidth, as a single destroyed block of ore or wreckage may spawn a dozen or so ore or scrap entities.
4.  With a particularly aggressive salvager or miner, I can take my ping (normally 30-50ms on my server) to upwards of 60,000ms (1 minute), as the backlog of calculations grows. 

With regular mining and salvaging lasers, what seems to happen instead (my current set of Avorion salvaging lasers do 11,381 dps/slot):
1.  Block of resource asteroid or block of ship is harvested by an appropriate non r- turret.
2.  Game matches resource to spawn against a 7-entry table, one for each resource.
3.  Resources spawn and approach ship with little to no delay. 

To fix the lag problem first, I wonder if it would be possible to insert one step to the spawning of resource ores and resource scrap metals: 
1.  Block of resource is broken by appropriate r- turret.
2.  Some kind of "is_this_cargo_item_refinable_resource" test is done.  If it is one of fourteen items (7 ores and 7 scrap metals with the tag)
3.  Check against the 14-entry resource table and spawn the appropriate type of ore or scrap metal.
4.  If it is not a refineable resource, send it to the original table of all commodities-that-take-up-cargo-space.

I hope my observations help fix the problem.  My server is running Avorion 1.3.5 main branch. 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...