# 性能基准测试 这里将 Pumpkin 与常见的 Minecraft 服务器软件进行比较。 > [!CAUTION] > **这个比较并不完全公平。** Pumpkin 目前的功能远少于其他服务器,这可能意味着它使用的资源更少。 > 同时也要考虑到其他服务器已经有多年的优化经验。 > 原版分支不需要重写整个原版逻辑,可以专注于优化。 ![A screenshot showing 9 Minecraft game windows](https://github.com/user-attachments/assets/e08fbb00-42fe-4479-a03b-11bb6886c91a) ## 规格 #### 技术规格 **软件** - 发行版: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](https://github.com/Snowiiii/Pumpkin/commit/8febc5035d5611558c13505b7724e6ca284e0ada) 编译参数:`--release` 运行参数: **文件大小:** MB **启动时间:** ms **关闭时间:** ms | 玩家数 | 内存 | CPU 空闲 | CPU 最大值 | | ------ | --------------------- | ---------------- | ------------------ | | 0 | KB | % | % | | 1 | MB | % | % | | 2 | MB | % | % | | 5 | MB | % | % | | 10 | MB | % | % | Pumpkin 会缓存已加载的区块,除了玩家数据外不会使用额外的内存,且 CPU 使用率最小。 #### 编译时间 从零开始编译: **调试模式:** 秒 **发布模式:** 秒 重新编译 (pumpkin crate): **调试模式:** 秒 **发布模式:** 秒 ## 原版 (Vanilla) 发布版本:[1.21.1](https://piston-data.mojang.com/v1/objects/59353fb40c36d304f2035d51e7d6e6baa98dc05c/server.jar) 编译参数: 运行参数:`nogui` **文件大小:** MB **启动时间:** 秒 **关闭时间:** 秒 | 玩家数 | 内存 | CPU 空闲 | CPU 最大值 | | ------ | -------------------- | --------------------------------------- | ------------------ | | 0 | MB | - % | % | | 1 | GB | - % | % | | 2 | GB | - % | % | | 5 | GB | % | % | | 10 | GB | % | % | ## Paper 构建版本:[122](https://api.papermc.io/v2/projects/paper/versions/1.21.1/builds/122/downloads/paper-1.21.1-122.jar) 编译参数: 运行参数:`nogui` **文件大小:** MB **启动时间:** 秒 **关闭时间:** 秒 | 玩家数 | 内存 | CPU 空闲 | CPU 最大值 | | ------ | ------------------- | -------------------------------------- | ----------------- | | 0 | GB | - % | % | | 1 | GB | - % | % | | 2 | GB | - % | % | | 5 | GB | % | % | | 10 | GB | % | % | ## Purpur 构建版本:[2324](https://api.purpurmc.org/v2/purpur/1.21.1/2324/download) 编译参数: 运行参数:`nogui` **文件大小:** MB **启动时间:** 秒 **关闭时间:** 秒 | 玩家数 | 内存 | CPU 空闲 | CPU 最大值 | | ------ | ------------------- | -------------------------------------- | ----------------- | | 0 | GB | - % | % | | 1 | GB | - % | % | | 2 | GB | - % | % | | 5 | GB | % | % | | 10 | GB | - % | % | ## Minestom 提交版本:[0ca1dda2fe](https://github.com/Minestom/Minestom/commit/0ca1dda2fe11390a1b89a228bbe7bf78fefc73e1) 编译参数: 运行参数: **语言:** 使用 Kotlin 2.0.0 运行基准测试(Minestom 本身使用 Java 开发) **文件大小:** MB(库) **启动时间:** ms **关闭时间:** ms [示例代码来源](https://minestom.net/docs/setup/your-first-server) | 玩家数 | 内存 | CPU 空闲 | CPU 最大值 | | ------ | ------------------- | -------------------------------------- | ---------------- | | 0 | MB | - % | % | | 1 | MB | - % | % | | 2 | MB | - % | % | | 5 | MB | % | % | | 10 | MB | % | % | 基准测试时间