Appearance
基准测试
这里将常见的 Minecraft 服务端与 Pumpkin 进行比较。
CAUTION
从技术角度来看,这种比较并不合理。 Pumpkin 目前的功能远少于其他服务端,这或许会让人误以为它消耗的资源也更少。 但需要指出的是,其他服务端经过多年的发展,已经进行了大量的优化工作。 对于基于 Vanilla 的 Fork 版本而言,由于无需重写整个 Vanilla 的逻辑,它们可以将精力完全集中在性能优化上。
规格
测试时的环境
软件
- 发行版: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 会对已经加载的区块进行缓存,因此除了玩家数据外,不会额外占用更多内存(RAM),并且 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 | % | % |
基准测试于