Skip to content

Performance Graphs

WARNING

This page presents performance comparison data between Leaf and Paper server implementations. Take these numbers with a grain of salt, it's best to do your own testings and come to a conclusion, these numbers are just "general" estimates for the most common scenarios.

Test Environment

Version: 1.21.4
CPU: i7-10750H
JVM: GraalVM 21
Memory: 6GB
Leaf Commit: 9db6bfb
Paper Commit: a838a88
Seed: 2618050634530417871
Coords: 183.5 67.00 -201.5

JVM Flags

-Xms6144M -Xmx6144M --add-modules=jdk.incubator.vector -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20

Performance Comparison (MSPT - lower is better)

Default Config
0 mspt
Paper
0 mspt
Leaf
Increased Mob Caps
0 mspt
Paper
0 mspt
Leaf
0 mspt
Leaf+Async

Performance Improvement

0%
Default Configuration
Leaf (0 mspt) vs Paper (0 mspt)
0%
Leaf with Increased Mob Caps
Leaf (0 mspt) vs Paper (0 mspt)
0%
Leaf+Async with Increased Mob Caps
Leaf+Async (0 mspt) vs Paper (0 mspt)

Test Configuration

Default settings in bukkit.yml, spigot.yml, and other configuration files.

Increased Mob Caps Configuration

Modified settings in bukkit.yml:

  • monsters: 70 → 700
  • animals: 10 → 100

All other configuration files remained at default settings.

Leaf+Async Configuration

Enabled minimal async options in leaf-global.yml:

yaml
async:
  async-entity-tracker:
    enabled: true
  async-pathfinding:
    enabled: true

Combined with the increased mob caps configuration.