Skip to content

Benchmarks

Here, common Minecraft server software is compared against Pumpkin.

CAUTION

This comparison is unfair. Pumpkin currently has far fewer features than other servers, which might suggest it uses fewer resources. It's also important to consider that other servers have had years to optimize. Vanilla forks, which don’t need to rewrite the entire Vanilla logic, can focus exclusively on optimizations.

Screenshot From 2024-10-15 16-42-53

Specifications

Technical

Software

  • Distribution: Manjaro Linux
  • Architecture: x86_64 (64-bit)
  • Kernel Version: 6.11.3-arch1-1

Hardware

  • Motherboard: MAG B650 TOMAHAWK WIFI
  • CPU: AMD Ryzen 7600X 6-Core
  • RAM: Corsair 2x16GB DDR5 6000Mhz
  • Storage: Samsung 990 PRO 1TB PCIe 4.0 M.2 SSD
  • Cooling: be quiet Dark Rock Elite

Rust

  • Toolchain: stable-x86_64-unknown-linux-gnu (1.81.0)
  • Rust Compiler: rustc 1.81.0 (eeb90cda1 2024-09-04)

Java

  • JDK Version: OpenJDK 23 64-Bit 2024-09-17
  • JRE Version: OpenJDK Runtime Environment (build 23+37)
  • Vendor: Oracle

Game

  • Minecraft version: 1.21.1
  • View distance: 10
  • Simulated distance: 10
  • Online mode: false
  • Rcon: false

Online mode was disabled for easier testing with non-premium accounts.

NOTE

All tests have been ran multiple times for more accurate results. All players did not move when spawning. Only the initial 8 chunks were loaded. All servers used their own terrain generation. No world was pre-loaded.

IMPORTANT

CPU Max is usually higher with one player because the initial chunks are being loaded.

Pumpkin

Build: 8febc50

Compile args: --release

Run args:

File Size: MB

Startup time: ms

Shutdown time: ms

PlayersRAMCPU IdleCPU Max
0KB%%
1MB%%
2MB%%
5MB%%
10MB%%

Pumpkin does cache already loaded chunks, resulting in no extra RAM usage besides player data and minimal CPU usage.

Compile time

Compiling from nothing:

Debug: sec Release: sec

Recompilation (pumpkin crate):

Debug: sec Release: sec

Vanilla

Release: 1.21.1

Compile args:

Run args: nogui

File Size: MB

Startup time: sec

Shutdown time: sec

PlayersRAMCPU idleCPU Max
0MB - %%
1GB - %%
2GB - %%
5GB%%
10GB%%

Paper

Build: 122

Compile args:

Run args: nogui

File Size: MB

Startup time: sec

Shutdown time: sec

PlayersRAMCPU idleCPU Max
0GB - %%
1GB - %%
2GB - %%
5GB%%
10GB%%

Purpur

Build: 2324

Compile args:

Run args: nogui

File Size: MB

Startup time: sec

Shutdown time: sec

PlayersRAMCPU idleCPU Max
0GB - %%
1GB - %%
2GB - %%
5GB%%
10GB - %%

Minestom

Commit: 0ca1dda2fe

Compile args:

Run args:

Language: Benchmarks ran with Kotlin 2.0.0 (Minestom itself is made with Java)

File Size: MB (Library)

Startup time: ms

Shutdown time: ms

Used example code from

PlayersRAMCPU idleCPU Max
0MB - %%
1MB - %%
2MB - %%
5MB%%
10MB%%

Benchmarked at

Released under the MIT License.