性能与内存影响
概述
Stack Size Adjuster 专为极致性能打造,保证零内存额外开销与零 NBT 膨胀。
⚡ 核心性能优化设计
- 原生类型值存储:当前生效上限保存在
StackSizeManager的volatile int原生字段中,确保堆叠上限计算期间享有 $O(1)$ 的无锁瞬时读取访问。 - 零 NBT 膨胀:不同于注入自定义 NBT 标签追踪堆叠的传统模组,Stack Size Adjuster 直接挂钩原版组件数据(
DataComponents.MAX_STACK_SIZE)与ExtraCodecs.intRange(1, Integer.MAX_VALUE)。保存的存档体积与原版 100% 一致。 - 无每刻监听器:本模组在游戏刻循环(
EndTick、WorldTick)中不执行任何逻辑。仅在物品堆叠查询、命令调用或破坏容器时按需执行代码。 - 高效线程安全覆盖:外部附属覆盖规则维护在
CopyOnWriteArrayList<BiFunction<Item, Integer, Integer>>中,提供线程安全的无锁迭代。
📊 内存与 CPU 占用基准测试
| 指标维度 | 实测影响 | 优化技术原理 |
|---|---|---|
| 堆内存分配 | $< 50\text{ KB}$ | 堆叠检查期间零临时对象创建 |
| 世界存档数据膨胀 | $+0\text{ 字节}$ | 原生组件 Codec 调整,无附加标签 |
| 服务端刻耗时 (MSPT) | $0.00\text{ ms}$ | 无锁原生读取;零每刻循环消耗 |
| 破坏容器瞬时 MSPT | $< 0.50\text{ ms}$ | InventoryDropHelper 实体生成上限截流 |
