mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-04-22 16:51:42 +00:00
this was achieved by storing binary representations of the blockstates, rather than the original BlockStateData. Due to the insane object:data ratio of Tag objects (40:1 for ByteTag for example), modestly sized NBT can explode in memory footprint. This has been previously seen with the absurd 25 MB footprint on file load. Previously, I attempted to mitigate this by deduplicating tag objects, but this was mitigating a symptom rather than addressing the cause. We don't actually need to keep the NBT around in memory, since we don't actually use it for anything other than matching blockstates. In this case, we can allow the code to be possibly a little slower, since the lookup is anyway slow and the result will be cached. In fact, using encoded ordered states as hash keys significantly improves the speed of lookups for stuff like walls, which have many thousands of states. We keep around generateStateData(), since it's still possible we may need the BlockStateData associated, and it can be easily reconstructed from the binary-encoded representation in BlockStateDictionaryEntry.
A highly customisable, open source server software for Minecraft: Bedrock Edition written in PHP
Getting started
Discussion/Help
For developers
- Building and running from source
- Developer documentation - General documentation for PocketMine-MP plugin developers
- Latest release API documentation - Doxygen API documentation generated for each release
- Latest bleeding-edge API documentation - Doxygen API documentation generated weekly from
next-major
branch - DevTools - Development tools plugin for creating plugins
- ExamplePlugin - Example plugin demonstrating some basic API features
- Contributing Guidelines
Donate
- Bitcoin Cash (BCH):
qq3r46hn6ljnhnqnfwxt5pg3g447eq9jhvw5ddfear
- Bitcoin (BTC):
171u8K9e4FtU6j3e5sqNoxKUgEw9qWQdRV
- Stellar Lumens (XLM):
GAAC5WZ33HCTE3BFJFZJXONMEIBNHFLBXM2HJVAZHXXPYA3HP5XPPS7T
- Patreon
Licensing information
This project is licensed under LGPL-3.0. Please see the LICENSE file for details.
pmmp/PocketMine are not affiliated with Mojang. All brands and trademarks belong to their respective owners. PocketMine-MP is not a Mojang-approved software, nor is it associated with Mojang.
Description
Languages
PHP
99.9%