Benchmark Report

Jun 9, 2026, 5:14 PMVoxelBench plugin 1.3.010 min 56 s benchmark
PublicSTANDARDStandard scoring 8.1.0· earlier scoring
Total score
58,187
RankC
Single Core93,351
Gameplay60,787
Hardware19,262
How this score is built
The verdict

Tick spikes · Mob AI

The worst ticks are several times the mean. Average TPS stays fine while players feel the stutter.

  • mspt_avg = 185.4 ms
  • mspt_p99 = 585.58 ms
  • spike_ratio = 3.16 ratio
  • sample_count = 114 count

Weakest test: Mob AI, 6.33 TPS on average. The 15 other tests hold at least 19.69 TPS.

Multipliers appliedSynergy ×0.985Stability ×0.966Duration ×1.036

Compared with other servers

The comparison with other servers uses reports scored with version 8.3.0 of the scoring rules. This report was scored with another version, so its score is not comparable.

What matters

Read from the measurements, never estimated
CriticalMob AI

Tick spikes

The worst ticks are several times the mean. Average TPS stays fine while players feel the stutter.

  • mspt_avg = 185.4 ms
  • mspt_p99 = 585.58 ms
  • spike_ratio = 3.16 ratio
  • sample_count = 114 count
See the setting this justifies

Tick spikes

The worst ticks are several times the mean. Average TPS stays fine while players feel the stutter.

  • mspt_avg = 28 ms
  • mspt_p99 = 57.95 ms
  • spike_ratio = 2.07 ratio
  • sample_count = 93 count
›+2 more findings
For informationMemory latency not measuredmemorynot measured

No access latency was published, so the score assumed an unfavourable one. Publishing the measurement can only help.

  • assumed_latency_ns = 180 ns
  • reference_latency_ns = 120 ns
For informationRandom 4K not measureddisknot measured

Direct IO was refused by the host, so the random part of the disk score rests on an assumption rather than a measurement.

  • assumed_random_mbps = 90 MB/s
  • reference_random_mbps = 150 MB/s

A finding stays silent rather than attribute a cause without evidence. An absent cause is an answer, not an omission.

Test by test

Problems first — select a row for the full test

Settings your measurements justify

Each setting below is triggered by a measurement from this report, and names the test to replay to find out whether it helped.

Spigotspigot.yml

Shrink the monster activation range

world-settings.default.entity-activation-range.monsters: 24

Measured : mobAI.mspt.avg 185.4 ms (threshold 35.0 ms)

Mob AI costs more per tick than the budget allows. The activation range decides how far from a player a monster keeps thinking; shrinking it puts distant ones to sleep without removing them.

Test to replay : mobAI

Bukkitbukkit.yml

Lower the monster spawn limit

spawn-limits.monsters: 50

Measured : mobAI.mspt.avg 185.4 ms (threshold 50.0 ms)

Mob AI is past the critical cost per tick, where shrinking the activation range is no longer enough. The spawn limit caps how many monsters exist per player at all, which is the only setting here that reduces the work rather than deferring it.

Test to replay : mobAI

These settings trade a little gameplay fidelity for tick budget. Apply one at a time and replay the named test: the effect stays a hypothesis until you have measured it.

Briefing for a language model

Paste this into the assistant of your choice to have it rewritten in prose. It already carries every number, so the model has none left to invent.

{
  "format": "voxelbench.tuning.v1",
  "instruction": "Rewrite each recommendation below as plain prose for a server operator. Every number you are allowed to use is already in this document: the measured value, its threshold, and the proposed setting. Do not compute, estimate or predict any other number, and never state an expected gain. Keep every setting name and value exactly as written.",
  "server": {
    "type": "purpur",
    "minecraft": "1.21.11",
    "java": "25.0.3"
  },
  "recommendations": [
    {
      "id": "spigot.portee-activation-monstres",
      "family": "spigot",
      "measure": "mobAI.mspt.avg",
      "value": 185.4,
      "unit": "ms",
      "threshold": 35,
      "control_test": "mobAI",
      "file": "spigot.yml",
      "setting": "world-settings.default.entity-activation-range.monsters",
      "proposed_value": "24",
      "current_value": null
    },
    {
      "id": "bukkit.limite-monstres",
      "family": "bukkit",
      "measure": "mobAI.mspt.avg",
      "value": 185.4,
      "unit": "ms",
      "threshold": 50,
      "control_test": "mobAI",
      "file": "bukkit.yml",
      "setting": "spawn-limits.monsters",
      "proposed_value": "50",
      "current_value": null
    }
  ]
}

Java start-up line

The options this server was started with, checked against its Java version. Corrections fix what is certainly wrong; leads to test are settings to measure, never applied for you.

Nothing to correctJava 25JVM not identifiedCollector: chosen by the JVMMemory: 126976 MiB, safe heap up to 107929 MiB
Current line (5 arguments)

Values of system properties, agents and file paths are never shown: they appear as <redacted>.

-Xms128M -Xmx3072M --add-modules=jdk.incubator.vector -Dterminal.jline=false -Dterminal.ansi=true

Nothing to correct: every option is valid for Java 25.

To test

Performance settings to try one at a time, then measure with a benchmark before and after. None of them is applied in the corrected line, and none comes with a promised gain.

to testAikar's G1 settings

Settings documented by PaperMC for Minecraft servers: they size G1's young generation for the game's very high allocation rate and start collections earlier. Initial and maximum heap at the same size, with AlwaysPreTouch, commit the whole heap at start-up: proposed only because that heap already stays under the memory limit.

-Xms3072M -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -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

No measurement of this run points to it: it stays a lead to measure.

source

Re-run and compare

  1. Apply the corrected line where your server starts (panel start-up parameters, start.sh).
  2. Restart the server.
  3. Run a new benchmark: /bench start
  4. Compare the new report with this one.
Open the comparison with this report

This report is the before; add the new report to the comparison once it is in. A single run on each side says little: the gap between two runs of an unchanged server is noise.

Every measurement

Each test in full. Tests in trouble are open; the others fold to their summary line.

Single-Core Stress

RedstoneHealthy

Single-core stress via intensive redstone circuit updates.

  • Heavy garbage collection79 collections, 1145ms total
TPS
min
15.00
avg
19.91
max
20.00
MSPT
min
6.60
avg
32.80
max
56.40
Percentiles and stability
TPS P1 (worst)15.00
TPS P519.88
TPS P50 (median)20.00
MSPT P9554.10
MSPT P99 (worst)56.44
TPS σ0.657
MSPT σ16.571
TPS derived from MSPT18.48
TPS stability3.3%(Stable)
MSPT stability66.3%(Unstable)
Raw data (3 fields)
pistonCount: 1,600gcCount: 79gcTimeMs: 1,145
Block PhysicsHealthy

Single-core stress via falling-block physics.

  • Heavy garbage collection16 collections, 974ms total
TPS
min
19.84
avg
19.99
max
20.00
MSPT
min
11.30
avg
22.70
max
33.40
Percentiles and stability
TPS P1 (worst)19.84
TPS P520.00
TPS P50 (median)20.00
MSPT P9531.73
MSPT P99 (worst)33.35
TPS σ0.041
MSPT σ4.944
TPS derived from MSPT20.00
TPS stability0.2%(Stable)
MSPT stability19.8%(Moderate)
Raw data (4 fields)
spawnFrequency: 1gcCount: 16fallingBlockCount: 24,000gcTimeMs: 974

Exploration

Chunk LoadingHealthy

Chunk generation and loading speed across dispersed zones.

  • Heavy garbage collection24 collections, 2760ms total
TPS
min
15.00
avg
19.69
max
20.00
MSPT
min
1.70
avg
4.40
max
22.70
Avg window119.1 chunks
Chunks loaded16000 chunks
Avg chunk load time0.91 ms
Chunks/sec1056.73 chunks/s
Peak window200 chunks
Critical brakes0 events
Peak observed MSPT54.2 ms
Percentiles and stability
TPS P1 (worst)15.00
TPS P515.00
TPS P50 (median)20.00
MSPT P9513.90
MSPT P99 (worst)22.70
TPS σ1.210
MSPT σ3.931
TPS derived from MSPT20.00
TPS stability6.1%(Stable)
MSPT stability15.7%(Moderate)
Raw data (2 fields)
gcCount: 24gcTimeMs: 2,760
Chunk TickingHealthy

Server performance when ticking many loaded chunks with random tick updates.

  • Heavy garbage collection23 collections, 1129ms total
TPS
min
18.50
avg
19.99
max
20.00
MSPT
min
18.30
avg
21.90
max
26.60
Chunks ticked200 chunks
Percentiles and stability
TPS P1 (worst)19.99
TPS P520.00
TPS P50 (median)20.00
MSPT P9524.72
MSPT P99 (worst)25.67
TPS σ0.126
MSPT σ1.647
TPS derived from MSPT20.00
TPS stability0.6%(Stable)
MSPT stability6.6%(Stable)
Raw data (3 fields)
gcCount: 23tickSpeed: 20gcTimeMs: 1,129
Lighting UpdateHealthy

Lighting recomputation throughput on block place / break.

  • Heavy garbage collection5 collections, 379ms total
TPS
min
20.00
avg
20.00
max
20.00
MSPT
min
2.50
avg
3.60
max
5.10
Total lighting updates3215 count
Lighting updates/sec129.4 ops/s
Percentiles and stability
TPS P1 (worst)20.00
TPS P520.00
TPS P50 (median)20.00
MSPT P954.54
MSPT P99 (worst)5.01
TPS σ0.001
MSPT σ0.565
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability2.3%(Stable)
Raw data (2 fields)
gcCount: 5gcTimeMs: 379

Entities

Mob AICritical

Complex mob AI behaviours (villagers, iron golems, hostile mobs).

  • Unfiltered samples usedUsing unfiltered samples (filter rate: 96%)
  • Heavy garbage collection30 collections, 1360ms total
  • The run did not hold steadyTPS avg=6.33<19, TPS P1=5.00<15, TPS StdDev=3.20>2
Phase 1
TPS 6.62
MSPT 168.53 ms
Phase 2
TPS 5.41
MSPT 189.49 ms
TPS
min
4.89
avg
6.33
max
20.00
MSPT
min
2.40
avg
185.40
max
588.60
Percentiles and stability
TPS P1 (worst)5.00
TPS P55.00
TPS P50 (median)5.00
MSPT P95279.60
MSPT P99 (worst)585.58
TPS σ3.195
MSPT σ82.056
TPS derived from MSPT3.58
TPS stability16.0%(Moderate)
MSPT stability328.2%(Unstable)
Raw data (12 fields)
globalAvgTps: 6.02phase2AvgTps: 5.41gcCount: 30globalAvgMspt: 179.01villagerCount: 2,400phase1AvgTps: 6.62filterRate: 0.96hostileMobCount: 1,200phase1AvgMspt: 168.53houseCount: 120phase2AvgMspt: 189.49gcTimeMs: 1,360

Mechanics

HopperHealthy

Intensive hopper chain item transfers.

  • Heavy garbage collection11 collections, 871ms total
TPS
min
18.50
avg
19.98
max
20.00
MSPT
min
2.70
avg
3.20
max
4.30
Items transferred38080 items
Transfer efficiency95.2 %
Items/sec1999.6 items/s
Percentiles and stability
TPS P1 (worst)18.50
TPS P520.00
TPS P50 (median)20.00
MSPT P953.71
MSPT P99 (worst)4.31
TPS σ0.176
MSPT σ0.314
TPS derived from MSPT20.00
TPS stability0.9%(Stable)
MSPT stability1.3%(Stable)
Raw data (2 fields)
gcCount: 11gcTimeMs: 871
ExplosionHealthy

Massive TNT explosions and block destruction.

  • Heavy garbage collection12 collections, 910ms total
TPS
min
20.00
avg
20.00
max
20.00
MSPT
min
2.90
avg
4.70
max
12.70
TPS drop during explosions0.00 TPS
Blocks destroyed7583 blocks
Block destruction throughput434.56 blocks/s
Percentiles and stability
TPS P1 (worst)20.00
TPS P520.00
TPS P50 (median)20.00
MSPT P956.60
MSPT P99 (worst)12.72
TPS σ0.002
MSPT σ1.440
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability5.8%(Stable)
Raw data (2 fields)
gcCount: 12gcTimeMs: 910
Ticking Tile EntitiesHealthy

Many ticking tile entities (furnaces, hoppers, etc.).

  • Heavy garbage collection3 collections, 797ms total
TPS
min
19.91
avg
20.00
max
20.00
MSPT
min
2.60
avg
3.20
max
4.80
Percentiles and stability
TPS P1 (worst)19.97
TPS P520.00
TPS P50 (median)20.00
MSPT P953.90
MSPT P99 (worst)4.72
TPS σ0.011
MSPT σ0.396
TPS derived from MSPT20.00
TPS stability0.1%(Stable)
MSPT stability1.6%(Stable)
Raw data (2 fields)
gcCount: 3gcTimeMs: 797
World SaveHealthy

World save speed and TPS impact during save operations.

  • Heavy garbage collection3 collections, 549ms total
TPS
min
20.00
avg
20.00
max
20.00
MSPT
min
1.90
avg
2.40
max
3.00
World save write speed26.08 MB/s
TPS drop during save0.00 TPS
World size saved126.0 MB
Percentiles and stability
TPS P1 (worst)20.00
TPS P520.00
TPS P50 (median)20.00
MSPT P952.96
MSPT P99 (worst)2.96
TPS σ0.001
MSPT σ0.323
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability1.3%(Stable)
Raw data (2 fields)
gcCount: 3gcTimeMs: 549
Bone Meal GrowthHealthy

Rapid crop and tree growth via bone meal.

  • Heavy garbage collection1 collections, 231ms total
TPS
min
19.88
avg
20.00
max
20.00
MSPT
min
2.10
avg
2.60
max
3.80
Percentiles and stability
TPS P1 (worst)20.00
TPS P520.00
TPS P50 (median)20.00
MSPT P953.30
MSPT P99 (worst)3.49
TPS σ0.017
MSPT σ0.340
TPS derived from MSPT20.00
TPS stability0.1%(Stable)
MSPT stability1.4%(Stable)
Raw data (8 fields)
cropsFullyGrown: 438gcCount: 1growthRate: 21.36cropCount: 500boneMealUsed: 1,467treesGrown: 34saplingCount: 200gcTimeMs: 231

CPU

Single-Core (tick-aligned)Healthy

Single-thread compute throughput measured on the main thread under the tick scheduler.

  • Heavy garbage collection2 collections, 389ms total
TPS
min
19.99
avg
20.00
max
20.00
MSPT
min
3.50
avg
4.10
max
5.10
Total operations103000000 ops
Single-core ops/s (tick-aligned)10283631 ops/s
Percentiles and stability
TPS P1 (worst)19.99
TPS P520.00
TPS P50 (median)20.00
MSPT P954.60
MSPT P99 (worst)5.14
TPS σ0.002
MSPT σ0.325
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability1.3%(Stable)
Raw data (3 fields)
gcCount: 2batchSize: 500,000gcTimeMs: 389
Multi-Core CPUHealthy

Parallel computation throughput across worker threads.

  • Heavy garbage collection4 collections, 241ms total
TPS
min
19.96
avg
20.00
max
20.00
MSPT
min
2.30
avg
3.20
max
5.40
Total operations50000000000 ops
Aggregate ops/s1643838656 ops/s
Percentiles and stability
TPS P1 (worst)19.96
TPS P520.00
TPS P50 (median)20.00
MSPT P954.30
MSPT P99 (worst)4.66
TPS σ0.007
MSPT σ0.606
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability2.4%(Stable)
Raw data (3 fields)
tasksCompleted: 100gcCount: 4gcTimeMs: 241

Memory & Storage

Memory PerformanceHealthy

RAM bandwidth and latency.

JVM measurements — do not reflect actual bare-metal performance.

  • Heavy garbage collection13 collections, 1017ms total
TPS
min
19.92
avg
20.00
max
20.00
MSPT
min
1.60
avg
2.20
max
3.60
Sequential read132.10 MB/s
Memcpy throughput6987.86 MB/s
Random write10.65 MB/s
Memory latency186.0 ns
Sequential write46.39 MB/s
Random read6.24 MB/s
Percentiles and stability
TPS P1 (worst)20.00
TPS P520.00
TPS P50 (median)20.00
MSPT P952.76
MSPT P99 (worst)3.17
TPS σ0.006
MSPT σ0.310
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability1.2%(Stable)
Raw data (2 fields)
gcCount: 13gcTimeMs: 1,017
Disk PerformanceHealthy

Sequential and random 4K read/write performance.

JVM measurements — do not reflect actual bare-metal performance.

  • Heavy garbage collection47 collections, 1014ms total
TPS
min
15.00
avg
19.94
max
20.00
MSPT
min
1.80
avg
3.10
max
5.40
4K read latency p995.4 µs
Sequential read654.32 MB/s
Random 4K write477.68 MB/s
4K read latency p954.1 µs
Random 4K write IOPS122287 IOPS
Random 4K read1153.56 MB/s
4K write latency avg17.5 µs
4K read latency p502.6 µs
4K write latency p9913.8 µs
4K write latency p505.4 µs
4K write latency p959.2 µs
Sequential write162.38 MB/s
4K read latency avg3.7 µs
Random 4K read IOPS295312 IOPS
Percentiles and stability
TPS P1 (worst)17.91
TPS P520.00
TPS P50 (median)20.00
MSPT P954.22
MSPT P99 (worst)4.91
TPS σ0.448
MSPT σ0.669
TPS derived from MSPT20.00
TPS stability2.2%(Stable)
MSPT stability2.7%(Stable)
Raw data (3 fields)
cacheInvalidated: yesgcCount: 47gcTimeMs: 1,014

Network

Network (NBT)Unstable

Serialisation throughput — proxy for the rate at which the server can ship world data to clients.

  • Heavy garbage collection38 collections, 389ms total
TPS
min
15.00
avg
19.89
max
20.00
MSPT
min
21.80
avg
28.00
max
57.90
Objects processed20000 obj
NBT serialization throughput5.04 MB/s
Objects/sec980 obj/s
Bytes processed107734949 B
Percentiles and stability
TPS P1 (worst)15.00
TPS P519.99
TPS P50 (median)20.00
MSPT P9535.45
MSPT P99 (worst)57.95
TPS σ0.730
MSPT σ6.392
TPS derived from MSPT20.00
TPS stability3.6%(Stable)
MSPT stability25.6%(Unstable)
Raw data (2 fields)
gcCount: 38gcTimeMs: 389
›Machine and serverAMD Ryzen 9 7950X 16-Core Processor · Purpur · 1.21.11
CPU Information
ModelAMD Ryzen 9 7950X 16-Core Processor
VendorAuthenticAMD
Physical Cores16
Logical Cores32
Max Frequency5.881 GHz
Server Information
Server TypePurpur (1.21.11-2568-f57bd86 (MC: 1.21.11))
Minecraft Version1.21.11
Bukkit Version1.21.11-R0.1-SNAPSHOT
Java Version25.0.3
OSLinux
Location🇬🇧 United Kingdom
Plugins1
JVM Memory
Max Heap3.00 GB
Allocated1.30 GB
Used0.54 GB
Free0.76 GB
Heap Usage17.9%
JVM Flags
-Xms128M -Xmx3072M --add-modules=jdk.incubator.vector -Dterminal.jline=false -Dterminal.ansi=true
Dispersed Zones8

Score Breakdown

Detailed sub-category scores

Hardware

Memory12,743
Disk13,170
Multi-Core38,399

Gameplay

Exploration88,890
Entities67,550
Mechanics39,056

Multipliers

Synergy Bonusx0.985
Stability Bonusx0.966
Duration Mult.x1.036