# Benchmarktests
Hier worden veelvoorkomende Minecraft-servers vergeleken met Pumpkin.
> [!CAUTION]
> **Deze vergelijking is oneerlijk.** Pumpkin heeft momenteel veel minder functies dan andere servers, wat zou kunnen suggereren dat het minder middelen gebruikt.
> Het is ook belangrijk om te overwegen dat andere servers jaren hebben gehad voor optimalisatie.
> Vanilla forks, die de volledige vanilla-logica niet hoeven te herschrijven, kunnen zich uitsluitend richten op optimalisaties.

## Specificaties
#### Technisch
**Software**
- Distributie: Manjaro Linux
- Architectuur: x86_64 (64-bit)
- Kernelversie: 6.11.3-arch1-1
**Hardware**
- Moederbord: MAG B650 TOMAHAWK WIFI
- CPU: AMD Ryzen 7600X 6-Core
- RAM: Corsair 2x16GB DDR5 6000Mhz
- Opslag: Samsung 990 PRO 1TB PCIe 4.0 M.2 SSD
- Koeling: 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 Versie: OpenJDK 23 64-Bit 2024-09-17
- JRE Versie: OpenJDK Runtime Environment (build 23+37)
- Leverancier: Oracle
#### Spel
- Minecraft versie: 1.21.1
- Zichtafstand: 10
- Gesimuleerde afstand: 10
- Online modus: false
- Rcon: false
online modus was uitgeschakeld voor eenvoudiger testen met niet-premium accounts
> [!NOTE]
> Alle tests zijn meerdere keren uitgevoerd om consistente resultaten te garanderen.
> Alle spelers bewogen niet bij het spawnen, alleen de eerste 8 chunks werden geladen.
> Alle servers gebruikten hun eigen terrein generatie, geen wereld was vooraf geladen.
> [!IMPORTANT]
> `CPU Max` is meestal hoger met één speler omdat de eerste chunks worden geladen.
## Pumpkin
Build: [8febc50](https://github.com/Snowiiii/Pumpkin/commit/8febc5035d5611558c13505b7724e6ca284e0ada)
Compileer args: `--release`
Run args:
**Bestandsgrootte:** MB
**Opstarttijd:** ms
**Afsluitingstijd:** ms
| Spelers | RAM | CPU Idle | CPU Max |
| ------- | --------------------- | ---------------- | ------------------ |
| 0 | KB | % | % |
| 1 | MB | % | % |
| 2 | MB | % | % |
| 5 | MB | % | % |
| 10 | MB | % | % |
Pumpkin cachet al geladen chunks, wat resulteert in geen extra RAM-gebruik behalve spelergegevens en minimaal CPU-gebruik.
#### Compileertijd
Compileren vanaf niets:
**Debug:** sec
**Release:** sec
Hercompilatie (pumpkin crate):
**Debug:** sec
**Release:** sec
## Vanilla
Release: [1.21.1](https://piston-data.mojang.com/v1/objects/59353fb40c36d304f2035d51e7d6e6baa98dc05c/server.jar)
Compileer args:
Run args: `nogui`
**Bestandsgrootte:** MB
**Opstarttijd:** sec
**Afsluitingstijd:** sec
| Spelers | 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)
Compileer args:
Run args: `nogui`
**Bestandsgrootte:** MB
**Opstarttijd:** sec
**Afsluitingstijd:** sec
| Spelers | 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)
Compileer args:
Run args: `nogui`
**Bestandsgrootte:** MB
**Opstarttijd:** sec
**Afsluitingstijd:** sec
| Spelers | 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)
Compileer args:
Run args:
**Taal:** Benchmarks uitgevoerd met Kotlin 2.0.0 (Minestom zelf is gemaakt met Java)
**Bestandsgrootte:** MB (Library)
**Opstarttijd:** ms
**Afsluitingstijd:** ms
[Gebruikte voorbeeldcode](https://minestom.net/docs/setup/your-first-server)
| Spelers | RAM | CPU idle | CPU Max |
| ------- | ------------------- | -------------------------------------- | ---------------- |
| 0 | MB | - % | % |
| 1 | MB | - % | % |
| 2 | MB | - % | % |
| 5 | MB | % | % |
| 10 | MB | % | % |
Benchmark uitgevoerd op