Pocketmine-mp: PocketMine 1.6 has serious performance issues

Created on 29 May 2017  路  7Comments  路  Source: pmmp/PocketMine-MP

Invalid

All 7 comments

Steadfast vs PocketMine is not a valid comparison. Steadfast have stripped out 99% of everything that makes for a usable server for performance and their own uses.

Indeed. Steadfast was a remove-any-feature version initially created for lifeboat.

Paste shocking results with resource packs & entity ticking.

resource packs are sendt once on join, maybe increase join settings in the yml (spawnhold etc, less network compression)
entity ticking can't be really critical, because only falling blocks, items and players really move.

I suggest running Timings and changing some settings.

There are no performance issues with the average server not using resource packs. The spike for ResourcePackClientResponsePacket is due to the expensive part of the login sequence (I/O and NBT read) being executed after the resource packs sequence on login is completed, nothing to do with resource packs themselves.

also, if you have 1-2 _seconds_ I/O time on join, you'd better get a new computer... even on my old machine it was 1-2 _milliseconds_. The bulk of the on-join load is due to NBT deserialization, which is extremely slow (see #466).

Also:

(although strangely steadfast uses the old methods, and hacks it to work on new MCPE versions without subchunks...). However chunk utils by dktapps got chunk loading down to the same speed as steadfast, making this not a concern for me.

  • Steadfast doesn't support Anvil, and it's Anvil that my extension provides the performance improvement of. This statement makes no sense.
  • Anvil and McRegion chunk conversion for the MCPE format is done in PocketMine on chunk load, whereas in Steadfast it is done on chunk send, and they do chunk network serialization on a different thread, which is why you don't see that issue on Steadfast. However, converting on send is less efficient than on load, especially if you have lots of players.
  • PocketMine currently does disk I/O and chunk conversion to MCPE format on the main thread. This is a known major performance problem and work is underway to resolve this issue already.

@thebigsmileXD Not originally, before there new dev team took over steadfast was used just to add current pmmp features and while retaining 1.4 methods.

When MCPE 0.11 came out, lbsg had a major issue with lag because PocketMine 1.5 was very slow. They took a old pocketmine-soft build and backported it to support 0.11. The result: It was just as fast as the 0.10.5 Pocketmine builds, while having all the features of PocketMine 1.5.

All the original commits seen here never intended to strip features (they even wanted to maintain API compatibility with PocketMine, it was never supposed to be a "LBSG server software only" project):
https://github.com/Hydreon/Steadfast2/commits/master/src/pocketmine/Player.php?author=williamtdr

It is only recently the new LBSG team has started to strip things out and add crap like pets into the core. The performance issues with 1.5 have been here for years.

These are some interesting issues:
https://github.com/PocketMine/PocketMine-MP/issues/3104
https://github.com/PocketMine/PocketMine-MP/issues/2567

also, if you have 1-2 seconds I/O time on join, you'd better get a new computer... even on my old machine it was 1-2 milliseconds. The bulk of the on-join load is due to NBT deserialization, which is extremely slow (see #466).

Sadly it takes about 5 seconds on my server, but as mentioned before, i had to play with the spawnhold settings to not lag out everyone when 2 players join at the same time.

If https://github.com/PocketMine/PocketMine-MP/issues/2567 is applying to you, i'd check the memory and caching settings.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Muqsit picture Muqsit  路  3Comments

JoshuaACasey picture JoshuaACasey  路  3Comments

sergeysova picture sergeysova  路  3Comments

Hugheth picture Hugheth  路  3Comments

RedstoneAlmeida picture RedstoneAlmeida  路  3Comments