TShock中文插件库TShock中文插件库
插件文档
TShock教程
插件开发
TShock Wiki 镜像
其他文档
  • 简体中文
  • en-US
GitHub
插件文档
TShock教程
插件开发
TShock Wiki 镜像
其他文档
  • 简体中文
  • en-US
GitHub
  • TShock Wiki 镜像
  • REST端点
  • Docker 设置
  • i18n
  • 主配置(config.json)
  • 主页
  • 命令行参数
  • 图块生成器
  • 插件
  • 服务器端角色 (SSC)
  • 服务端角色配置(sscconfig.json)
  • 权限说明
  • 欢迎消息 (MOTD)
  • 语言
  • 软件包

图块生成器

TShock 内置了两个图块生成器,它们用不同的系统替换了 Terraria 的图块数据存储。此外,一个主要的插件开发者提供了额外的图块生成器集合。对于开发者来说,这些生成器实现了 ITile 接口并将自己注册为图块生成器。ITile 由 OTAPI 提供。

默认情况下,Terraria 以相对未优化的方式存储图块。从理论上讲,这是访问图块最快的方式,但这是以内存为代价的。如果您运行的 Terraria 服务器内存有限,您可能希望回收内存并改为交换处理能力。这就是这些生成器的作用。

Constileation

Constileation 是 TShock 内置的最新图块生成器。它比 HeapTile 更快,并且节省内存。它每个图块使用 14 字节。使用 -c 或 -constileation 命令行参数启动您的 TShock 服务器来使用此生成器。

HeapTile

HeapTile 是 TShock 内置的最早的图块生成器之一。同样,它提供内存优势,但与 Constileation 和 Tiled 相比真的很慢。使用 -heaptile 命令行参数启动您的 TShock 服务器来使用此生成器。

Tiled

thanatos 开发的 TShock 的 tiled 插件 提供了额外的图块生成器,包括他们的 1d、2d 和 struct 生成器。我们敦促您查看并比较所有图块生成器,找到最适合您需求的生成器。Tiled 试图带来两全其美的效果,提供既能最小化内存使用又能提供适度性能的图块生成器。

图块生成器基准测试

@SignatureBeef 对各种图块生成器进行了基准测试。这里转载了 TSAPI PR #231 中的一些运行示例。对于这些测试,以下是生成器:

  • Stock 是 Terraria 服务器的原始配置。
  • Heap 是 HeapTile
  • Constileation 是 Constileation
  • 1d 来自 Tiled
  • 2d 来自 Tiled
  • Struct 来自 Tiled

基准测试:每个生成器对小世界中的每个图块调用 .active 的速度

MethodMeanErrorStdDevRatioRatioSD
Active_Stock31.78 ms0.456 ms0.426 ms1.000.00
Active_Heap122.07 ms2.413 ms2.370 ms3.840.09
Active_Constileation40.41 ms0.575 ms0.510 ms1.270.02
Active_1d52.94 ms0.731 ms0.648 ms1.660.03
Active_2d54.96 ms1.083 ms1.064 ms1.730.05
Active_Struct61.59 ms0.651 ms0.544 ms1.930.03

基准测试:生成器对小世界中的每个图块发布和存储自己数据的速度

MethodMeanErrorStdDevRatioRatioSD
AssignFromSelf_Stock34.30 ms0.486 ms0.454 ms1.000.00
AssignFromSelf_Heap267.03 ms3.455 ms3.062 ms7.790.15
AssignFromSelf_Constileation42.30 ms0.664 ms0.621 ms1.230.03
AssignFromSelf_1d208.46 ms2.823 ms2.640 ms6.080.10
AssignFromSelf_2d242.42 ms4.669 ms6.234 ms7.110.24
AssignFromSelf_Struct278.45 ms4.580 ms4.284 ms8.120.13

基准测试:生成器对小世界中的每个图块转换其他图块数据(如 Terraria.Tile)的速度

MethodMeanErrorStdDevRatio
AssignFromTile_Stock433.3 ms7.22 ms6.40 ms1.00
AssignFromTile_Heap210.4 ms3.33 ms3.11 ms0.49
AssignFromTile_Constileation195.7 ms2.45 ms2.29 ms0.45
AssignFromTile_1d239.0 ms2.07 ms1.83 ms0.55
AssignFromTile_2d240.5 ms3.03 ms2.69 ms0.56
AssignFromTile_Struct277.6 ms3.74 ms3.49 ms0.64

基准测试:生成器对小世界中的每个图块清除图块数据(使用方法)的速度

MethodMeanErrorStdDevRatioRatioSD
Clear_Stock308.8 ms3.90 ms3.65 ms1.000.00
Clear_Heap479.1 ms9.20 ms9.84 ms1.550.03
Clear_Constileation331.2 ms2.16 ms1.92 ms1.070.01
Clear_1d557.8 ms3.24 ms3.03 ms1.810.03
Clear_2d692.9 ms20.61 ms59.78 ms2.140.16
Clear_Struct789.2 ms13.95 ms22.93 ms2.600.11

基准测试:生成器对小世界中的每个图块运行类似于原版中清理世界功能的逻辑的速度

MethodMeanErrorStdDevRatioRatioSD
ClearWorld_Stock79.27 ms0.669 ms0.593 ms1.000.00
ClearWorld_Heap239.87 ms2.324 ms2.060 ms3.030.03
ClearWorld_Constileation62.48 ms0.948 ms0.887 ms0.790.01
ClearWorld_1d139.73 ms1.621 ms1.516 ms1.760.02
ClearWorld_2d151.27 ms2.341 ms2.190 ms1.910.03
ClearWorld_Struct177.16 ms3.190 ms2.828 ms2.230.05

基准测试:生成器对小世界中的每个图块发布图块数据的速度

MethodMeanErrorStdDevRatioRatioSD
Gets_Stock17.49 ms0.224 ms0.210 ms1.000.00
Gets_Heap100.88 ms2.007 ms2.465 ms5.760.17
Gets_Constileation27.15 ms0.513 ms0.455 ms1.550.03
Gets_1d29.46 ms0.431 ms0.403 ms1.680.03
Gets_2d27.93 ms0.258 ms0.242 ms1.600.02
Gets_Struct33.77 ms0.671 ms1.719 ms1.850.08

基准测试:生成器对小世界中的每个图块更改图块类型的速度

MethodMeanErrorStdDevRatioRatioSD
Type_Stock28.41 ms0.420 ms0.393 ms1.000.00
Type_Heap120.99 ms2.317 ms2.480 ms4.250.10
Type_Constileation36.95 ms0.732 ms0.977 ms1.300.04
Type_1d38.65 ms0.686 ms1.027 ms1.380.04
Type_2d39.64 ms0.405 ms0.359 ms1.400.02
Type_Struct43.09 ms0.749 ms0.664 ms1.520.03

基准测试:测试生成器对小世界中的每个图块调用基本操作(如清除、类型更改和 .active)的速度

MethodMeanErrorStdDevRatioRatioSD
Use_Stock359.4 ms4.67 ms4.14 ms1.000.00
Use_Heap666.4 ms10.78 ms10.08 ms1.860.04
Use_Constileation407.3 ms5.87 ms5.20 ms1.130.02
Use_1d654.5 ms7.30 ms6.83 ms1.820.03
Use_2d741.7 ms8.19 ms7.66 ms2.070.03
Use_Struct1,235.3 ms7.60 ms7.11 ms3.440.03
上一篇
命令行参数
下一篇
插件