Skip to content

Entity Performance Benchmark

WARNING

This page presents performance comparison data between Leaf and Paper server implementations for entity processing. These results represent a specific test scenario and may vary based on hardware, configuration, and other factors.

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 Configuration

Both servers were tested with default settings in bukkit.yml, spigot.yml, and other configuration files. This baseline test represents performance under typical server conditions.

Increased Mob Caps Configuration

Modified settings in bukkit.yml:

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

All other configuration files remained at default settings. This test simulates a high-entity-count scenario that frequently occurs on busy servers.

Leaf+Async Configuration

Enabled minimal async options in leaf-global.yml:

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