パフォーマンスとメモリへの影響
概要
Stack Size Adjuster は最高のパフォーマンスを発揮し、メモリオーバーヘッドや NBT の肥大化を一切招かないよう設計されています。
⚡ 主なパフォーマンス最適化
- プリミティブ型による保持: 制限値は
volatile int変数として保持され、スタックチェック時に $O(1)$ のロックフリーで参照されます。 - NBT 肥大化ゼロ: カスタムタグを各アイテムに埋め込むのではなく、バニラのコンポーネントコーデック(
DataComponents.MAX_STACK_SIZE)とExtraCodecs.intRangeを直接拡張します。ワールドの保存容量はバニラと同一です。 - ティック監視処理なし: 定期的なティックループ(
EndTick,WorldTick)では一切処理を行いません。 - 安全な並行処理: アドオンのオーバーライドは
CopyOnWriteArrayListで管理されています。
📊 ベンチマーク結果
| 測定項目 | 実測値 | 最適化手法 |
|---|---|---|
| ヒープメモリ確保量 | $< 50\text{ KB}$ | チェック時のオブジェクト生成ゼロ |
| ワールド保存データ増加 | $+0\text{ バイト}$ | 既存コンポーネントコーデックの流用 |
| サーバーティック負荷 (MSPT) | $0.00\text{ ms}$ | ロックフリーなプリミティブ参照 |
| コンテナ破壊時の負荷 (MSPT) | $< 0.50\text{ ms}$ | InventoryDropHelper によるエンティティ制限 |
