▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Chunker

Chunker

Fast and Efficient Async Minecraft World Pre-generator

5.7K
47
Все версииChunker 1.21.4

Chunker 1.21.4

Release1 г. назад

Список изменений

Chunker – Major Performance & Memory Optimization Update & Support for Folia

This version of Chunker brings significant improvements in memory efficiency, GC behavior, and compatibility — especially under high parallel load configurations.


Improvements

  • Coordinate Caching

    • Introduced a lightweight cache for coordinates to reduce frequent object creation and Java GC pressure.
    • This dramatically reduces heap usage during high-throughput pre-generation.
  • Memory Leak Fixes

    • Resolved an issue where tracked chunks for players were not being cleared correctly, causing memory to grow over time even after chunks were unloaded. This would only happend if players where in the server and running pregen in the background at the same time.
  • Smarter Memory Footprint

    • Optimized several internal variables and data structures to further reduce overall memory usage, especially when running across all 3 dimensions.
  • Added Support for Folia

    • Chunker is now fully compatible with Folia servers, alongside all existing supported server types.

Benchmark Results – Memory Usage Comparison

Two tests were performed to compare memory usage between the old and new versions of Chunker, using the same world seed and identical start points.

TestOld VersionNew VersionImprovement
parallel_tasks_multiplier = 16 (on all dimensions)7.2 GB3.3 GB−54.2%
parallel_tasks_multiplier = 200 (on end dimnension only)26.7 GB (crashed)11.3 GB−57.7%
  • Average memory usage reduced by about (50%)
  • New version remained stable under extreme chunk rates(about 3200 ChunksPerSecond in the end) that caused the old version to crash.

Benchmark Test Setup (Reproducible)

JVM Launch Parameters (start.bat):

@echo off
java -Xms1G -Xmx30G -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -XX:+OptimizeStringConcat -XX:+UseCompressedOops -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:+ParallelRefProcEnabled -XX:+UseNUMA -XX:ParallelGCThreads=16 -XX:ConcGCThreads=16 -XX:MaxGCPauseMillis=50 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar server.jar --nogui
pause
  • Xms1G and Xmx30G should be updated to match your minimum(Xms) and max memory(Xmx) you want for your own server
  • Update both XX:ParallelGCThreads and XX:ConcGCThreads to match your number of threads

Paper Configuration (paper-global.yml):

chunk-loading-advanced:
  auto-config-send-distance: true
  player-max-concurrent-chunk-generates: -1 # removes per-player generation limits
  player-max-concurrent-chunk-loads: -1     # removes per-player load limits

chunk-loading-basic:
  player-max-chunk-generate-rate: -1.0 # removes chunk generation rate cap
  player-max-chunk-load-rate: -1.0     # removes chunk load rate cap
  player-max-chunk-send-rate: -1.0     # removes chunk send rate cap

chunk-system:
  gen-parallelism: default             # allows Paper to scale based on system threads
  io-threads: 16                       # matches CPU thread count for optimal throughput
  worker-threads: 16                   # matches CPU thread count for chunk processing

region-file-cache-size: 16            # reduced cache size to lower memory usage while pre-generating with no players online; 16 is a balanced middle ground (lowest allowed is 4)

Testing Methodology:

  • All world data was reset between tests, except level.dat, to keep the same world seed.
  • Chunker plugin data was wiped to start fresh from (0, 0) in each test.
  • Each test was run for 1 hour for the parallel_tasks_multiplier 16 test and 15 min for parallel_tasks_multiplier 200 test, allowing memory to stabilize.
  • Console print statements may still cause slight memory increases due to terminal buffer growth.

Tips for Best Performance

  • Use Paper or Folia with chunk-loading limits removed (as shown above).
  • Tune parallel_tasks_multiplier and task_queue_timer based on your system’s CPU core count and available memory.
  • Use print_update_delay of 10s+ to avoid excessive log output during long runs.
  • Lower region-file-cache-size if running pregen on a fresh world with no players online.

Файлы

Chunker-1.21.4.jar(46.65 KiB)
Основной
Скачать

Метаданные

Канал релиза

Release

Номер версии

1.21.4

Загрузчики

Bukkit
Folia
Paper
Purpur
Spigot

Версии игры

1.21–1.21.4

Загрузок

342

Дата публикации

1 г. назад

Загрузил

ID версии

Главная