BuiltByBit store

BetterMultiThreadedBenchmarks

Benchmarks

What BetterMultiThreaded measured on our own servers, and exactly how each number was taken.

Every number on this page comes from our own servers: /tps and spark profiles on the live network, plus stress runs with 150–200 bots on a copy of the live map. “Folia” in the tables means the same build with sharding switched off, so the only thing that changes is the threading.

One crowded region

151 players and about 7,400 entities inside one contiguous area of 18,200 chunks. Same Ryzen 9 9950X, same bots, same map copy.

FoliaBetterMultiThreaded
MSPT (lower is better)90.2 ms14.6–15.4 ms
TPS (higher is better)~1120.00
  • 6× shorter ticks on the same load.
  • About 0.7 of a core of extra CPU for that speed-up. Idle workers park instead of spinning.
  • 0 watchdog warnings and 0 player disconnects during the run.
Bar charts of MSPT and TPS for Folia and BetterMultiThreaded with 151 players in one region
One crowded region: 151 players, ~7,400 entities, 18,200 chunks. Click to enlarge.

Small area to large map

MSPT as reported by /tps.

ScenarioLoadFoliaBetterMultiThreadedSpeed-up
Packed spawn151 players inside a 100-block radius, 648 chunks, ~490 entities22.8–25.215.81.5×
Spread-out town99 players across 1,100 blocks, ~13,000 chunks, ~1,750 entities25.011.82.1×
Town full of mobs and farms151 players, 18,200 chunks, ~7,400 entities90.214.6–15.46×

Peak run: about 195 players, 25,000 chunks and 7,500 entities in one region held 15.5–16.7 MSPT and 20.00 TPS in all four runs, with zero errors.

MSPT for Folia and BetterMultiThreaded in three scenarios: packed spawn, spread-out town, and a town full of mobs and farms
The same 0–100 ms scale on every row. Click to enlarge.

Stability with players on the move

Low MSPT is half the story. Every /warp, /rtp and portal trip makes Folia merge and split regions under a lock that other regions have to wait for. “Before” is our previous build, with Folia-style full splits and no work stealing.

MeasureBeforeBetterMultiThreaded
Time a region split holds the lock (average)118 ms14 ms
Time a region split holds the lock (worst case)153 ms29 ms
Worst minimum TPS during mass teleports17.1219.39
Late tick starts in 200 seconds2531
Worst delay of a late tick445 ms35 ms

The teleport run used 197 bots and 700 teleports in 4 minutes, measured across every region on the server. The late-tick run had 14 regions sharing 4 threads. Merge and split waves came every 14 seconds: 30 random players scattered 2,600 blocks out, 20 pulled back to spawn.

Region split lock time 118 to 14 ms, worst minimum TPS 17.12 to 19.39, late tick starts 253 to 1
Stress runs on a copy of a live Towny map, 21 September 2026. Click to enlarge.

On the live network

BetterMultiThreaded runs our own Towny network every day. These numbers come from spark profiles and /tps on the live server with 405–410 players online, not from a synthetic benchmark.

Busiest region
Players118
Chunks21,500
Entities5,600
Region tick10.7 ms
Serial part2.93 ms
Tracker0.79 ms
Shards6.97 ms

The two parallel phases, tracker and shards, did 59.8 ms of work in 7.76 ms of wall time: 7.7× parallel. Only the serial part, 2.93 ms, still runs on a single thread.

The same town ran at about 70 MSPT with 130–140 players when it was still on one thread. At 410 players the whole server used about 13 of 32 hardware threads, on one Ryzen 9 9950X.

Live network: busiest region with 118 players ticks in 10.7 ms; 410 players online on one server
Spark profiles and /tps on the production server. Click to enlarge.

How it was measured

  • MSPT and TPS are read from /tps (5-second window) and from spark profiles.
  • Stress runs used 150–200 bots on a copy of a live Towny map, on a Ryzen 9 9950X, in September 2026.
  • “Folia” is the same build with sharding switched off.
  • Live numbers come from our production Towny server at 405–410 players online.

Your results depend on your hardware, your plugins and how your players spread out. Use /tps on your own server to see the speed-up of each region.