# Benchmarks
Here, common Minecraft servers are 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 for optimization.
> Vanilla forks, which don’t need to rewrite the entire vanilla logic, can focus exclusively on optimizations.

## 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 to guarantee consistent 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 as the initial chunks are being loaded.
## Pumpkin
Build: [8febc50](https://github.com/Snowiiii/Pumpkin/commit/8febc5035d5611558c13505b7724e6ca284e0ada)
Compile args: `--release`
Run args:
**File Size:** MB
**Startup time:** ms
**Shutdown time:** ms
| Players | RAM | CPU Idle | CPU Max |
| ------- | --------------------- | ---------------- | ------------------ |
| 0 | KB | % | % |
| 1 | MB | % | % |
| 2 | MB | % | % |
| 5 | MB | % | % |
| 10 | MB | % | % |
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](https://piston-data.mojang.com/v1/objects/59353fb40c36d304f2035d51e7d6e6baa98dc05c/server.jar)
Compile args:
Run args: `nogui`
**File Size:** MB
**Startup time:** sec
**Shutdown time:** sec
| Players | RAM | CPU idle | CPU Max |
| ------- | --------------------- | ---------------------------------------- | ------------------ |
| 0 | MB | - % | % |
| 1 | GB | - % | % |
| 2 | GB | - % | % |
| 5 | GB | % | % |
| 10 | GB | % | % |
## Paper
Build: [122](https://api.papermc.io/v2/projects/paper/versions/1.21.1/builds/122/downloads/paper-1.21.1-122.jar)
Compile args:
Run args: `nogui`
**File Size:** MB
**Startup time:** sec
**Shutdown time:** sec
| Players | RAM | CPU idle | CPU Max |
| ------- | ------------------- | -------------------------------------- | ----------------- |
| 0 | GB | - % | % |
| 1 | GB | - % | % |
| 2 | GB | - % | % |
| 5 | GB | % | % |
| 10 | GB | % | % |
## Purpur
Build: [2324](https://api.purpurmc.org/v2/purpur/1.21.1/2324/download)
Compile args:
Run args: `nogui`
**File Size:** MB
**Startup time:** sec
**Shutdown time:** sec
| Players | RAM | CPU idle | CPU Max |
| ------- | ------------------- | -------------------------------------- | ----------------- |
| 0 | GB | - % | % |
| 1 | GB | - % | % |
| 2 | GB | - % | % |
| 5 | GB | % | % |
| 10 | GB | - % | % |
## Minestom
Commit: [0ca1dda2fe](https://github.com/Minestom/Minestom/commit/0ca1dda2fe11390a1b89a228bbe7bf78fefc73e1)
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](https://minestom.net/docs/setup/your-first-server)
| Players | RAM | CPU idle | CPU Max |
| ------- | ------------------- | -------------------------------------- | ---------------- |
| 0 | MB | - % | % |
| 1 | MB | - % | % |
| 2 | MB | - % | % |
| 5 | MB | % | % |
| 10 | MB | % | % |
Benchmarked at