AI 요약
Plush 언어 인터프리터 개발자가 러스트의 태그드 enum(128비트)을 64비트 정수 기반의 로우비트 태깅(low-bit tagging) 방식으로 교체하여 인터프리터 속도를 17% 향상시켰다. 64비트 시스템에서 힙 객체 주소가 8바이트 정렬된다는 점을 이용해 하위 3비트를 태그로 활용하는 고전적 기법을 적용했다. 또한 정수 값의 하위 2비트도 차용하는 방식으로 모든 값 타입을 64비트에 압축했다. 이로써 대규모 배열에서 발생하던 메모리 낭비를 제거하고 성능을 개선했다.
핵심 포인트
- 기존 러스트 태그드 enum은 16바이트(128비트)였으나, 각 변형은 64비트만 필요하고 태그는 8비트만 필요했음에도 메모리 정렬 제약으로 낭비 발생
- 64비트 시스템에서 힙 객체 주소가 8바이트 정렬되어 하위 3비트가 항상 0이라는 점을 활용
- 정수 값의 하위 2비트도 차용하는 방식으로 모든 값 타입을 64비트에 압축
- 인터프리터 속도 17% 향상 달성
향후 전망
- 동적 타입 언어 인터프리터의 값 표현 최적화 기법으로 널리 참조될 수 있으며, GC 최적화(16배 속도 향상)와 결합해 실시간 3D 애니메이션 렌더링이라는 목표에 근접할 것
