性能基准测试
这里将 Pumpkin 与常见的 Minecraft 服务器软件进行比较。
CAUTION
这个比较并不完全公平。 Pumpkin 目前的功能远少于其他服务器,这可能意味着它使用的资源更少。 同时也要考虑到其他服务器已经有多年的优化经验。 原版分支不需要重写整个原版逻辑,可以专注于优化。
规格
技术规格
软件
- 发行版:Manjaro Linux
- 架构:x86_64 (64位)
- 内核版本:6.11.3-arch1-1
硬件
- 主板:MAG B650 TOMAHAWK WIFI
- CPU:AMD Ryzen 7600X 6核
- 内存:Corsair 2x16GB DDR5 6000Mhz
- 存储:Samsung 990 PRO 1TB PCIe 4.0 M.2 SSD
- 散热:be quiet Dark Rock Elite
Rust
- 工具链:stable-x86_64-unknown-linux-gnu (1.81.0)
- Rust 编译器:rustc 1.81.0 (eeb90cda1 2024-09-04)
Java
- JDK 版本:OpenJDK 23 64位 2024-09-17
- JRE 版本:OpenJDK Runtime Environment (build 23+37)
- 供应商:Oracle
游戏设置
- Minecraft 版本:1.21.1
- 视距:10
- 模拟距离:10
- 在线模式:false
- Rcon:false
为了使用非正版账号进行更容易的测试,禁用了在线模式。
NOTE
所有测试都进行了多次以获得更准确的结果。 所有玩家在生成时都没有移动。只加载了初始的8个区块。 所有服务器都使用了各自的地形生成。没有预加载世界。
IMPORTANT
单个玩家时 CPU 最大值
通常更高,因为初始区块正在被加载。
Pumpkin
构建版本:8febc50
编译参数:--release
运行参数:
文件大小: MB
启动时间: ms
关闭时间: ms
玩家数 | 内存 | CPU 空闲 | CPU 最大值 |
---|---|---|---|
0 | KB | % | % |
1 | MB | % | % |
2 | MB | % | % |
5 | MB | % | % |
10 | MB | % | % |
Pumpkin 会缓存已加载的区块,除了玩家数据外不会使用额外的内存,且 CPU 使用率最小。
编译时间
从零开始编译:
调试模式: 秒 发布模式: 秒
重新编译 (pumpkin crate):
调试模式: 秒 发布模式: 秒
原版 (Vanilla)
发布版本:1.21.1
编译参数:
运行参数:nogui
文件大小: MB
启动时间: 秒
关闭时间: 秒
玩家数 | 内存 | CPU 空闲 | CPU 最大值 |
---|---|---|---|
0 | MB | - % | % |
1 | GB | - % | % |
2 | GB | - % | % |
5 | GB | % | % |
10 | GB | % | % |
Paper
构建版本:122
编译参数:
运行参数:nogui
文件大小: MB
启动时间: 秒
关闭时间: 秒
玩家数 | 内存 | CPU 空闲 | CPU 最大值 |
---|---|---|---|
0 | GB | - % | % |
1 | GB | - % | % |
2 | GB | - % | % |
5 | GB | % | % |
10 | GB | % | % |
Purpur
构建版本:2324
编译参数:
运行参数:nogui
文件大小: MB
启动时间: 秒
关闭时间: 秒
玩家数 | 内存 | CPU 空闲 | CPU 最大值 |
---|---|---|---|
0 | GB | - % | % |
1 | GB | - % | % |
2 | GB | - % | % |
5 | GB | % | % |
10 | GB | - % | % |
Minestom
提交版本:0ca1dda2fe
编译参数:
运行参数:
语言: 使用 Kotlin 2.0.0 运行基准测试(Minestom 本身使用 Java 开发)
文件大小: MB(库)
启动时间: ms
关闭时间: ms
玩家数 | 内存 | CPU 空闲 | CPU 最大值 |
---|---|---|---|
0 | MB | - % | % |
1 | MB | - % | % |
2 | MB | - % | % |
5 | MB | % | % |
10 | MB | % | % |
基准测试时间