效能與記憶體影響
概述
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 實體生成上限截流 |
