성능 및 메모리 영향
개요
Stack Size Adjuster는 추가적인 메모리 오버헤드나 NBT 데이터 낭비 없이 극대화된 효율성을 자랑합니다.
⚡ 주요 성능 최적화
- 원시값 보관: 적용 한도는
StackSizeManager내부의volatile int원시 변수에 보관되어 $O(1)$의 락 없는 빠른 읽기 속도를 제공합니다. - NBT 팽창 제로: 별도 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 엔티티 분할 제한 |
