Skip to content

基准测试

这里将常见的 Minecraft 服务端与 Pumpkin 进行比较。

CAUTION

从技术角度来看,这种比较并不合理。 Pumpkin 目前的功能远少于其他服务端,这或许会让人误以为它消耗的资源也更少。 但需要指出的是,其他服务端经过多年的发展,已经进行了大量的优化工作。 对于基于 Vanilla 的 Fork 版本而言,由于无需重写整个 Vanilla 的逻辑,它们可以将精力完全集中在性能优化上。

2024年10月15日16-42-53的截图

规格

测试时的环境

软件

  • 发行版: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 最大值
0KB%%
1MB%%
2MB%%
5MB%%
10MB%%

Pumpkin 会对已经加载的区块进行缓存,因此除了玩家数据外,不会额外占用更多内存(RAM),并且 CPU 使用率极低。

编译时间

从零开始编译:

调试: 发布:

重新编译(pumpkin crate):

调试: 发布:

Vanilla

发布:1.21.1

编译参数:

运行参数:nogui

文件大小: MB

启动时间:

关闭时间:

玩家内存CPU 空闲CPU 最大值
0MB - %%
1GB - %%
2GB - %%
5GB%%
10GB%%

Paper

构建:122

编译参数:

运行参数:nogui

文件大小: MB

启动时间:

关闭时间:

玩家内存CPU 空闲CPU 最大值
0GB - %%
1GB - %%
2GB - %%
5GB%%
10GB%%

Purpur

构建:2324

编译参数:

运行参数:nogui

文件大小: MB

启动时间:

关闭时间:

玩家内存CPU 空闲CPU 最大值
0GB - %%
1GB - %%
2GB - %%
5GB%%
10GB - %%

Minestom

提交:0ca1dda2fe

编译参数:

运行参数:

语言: 基准测试使用 Kotlin 2.0.0运行(Minestom 本身是用 Java 编写的)

文件大小: MB(库)

启动时间: ms

关闭时间: ms

使用的示例代码来自

玩家内存CPU空闲CPU最大值
0MB - %%
1MB - %%
2MB - %%
5MB%%
10MB%%

基准测试于

Released under the MIT License.