Schematics now load in a fraction of a time. (took me 5.13 seconds to
load a 102,572,228 block schematic)
Also made some minor optimizations here and there.
The CuboidRegion class will now queue blocks in layers for a chunk
before moving onto the next chunk. This results in higher cache hits for
history enabled queues. It also allows the block placer to start earlier
during preprocessing with edits affecting > 64 (configurable) chunks.
Note: with history on disk enabled, this means near unlimited sized
edits (for certain commands) might be feasible.
fix a few async issues (nbt setting/cut/plotsquared hook)
fixes#1
allow some debug options to be configurable (chunk wait / buffer size)
add region restriction option
Using java's inbuilt compression algorithms (gzip or deflator both) was
a bit too slow for me.
Fawe is now using the LZ4 compression algorithm, which is super fast. So
fast that I decided to add a default 1 pass of compression to history.
Enabling further compression will do an additional high LZ4 compression.
Streamlined the queue so now the queue doesn't need to be fetched on
each block
Removed block reording from editsession as it alone takes half a
second/million blocks
Replaced block fetch from history extent with optimized algorithm.
Switched to MemoryOptimizedHistory without compression by default. The
increase in cpu is negligable but the reduction in memory is
substantial. Further compression can still be enabled.
history.compress: Enables compression of player history (slower, but
reduced memory usage)
history.use-disk: Player history is saved to disk (slower, but saves a
lot of memory)