Rust enum을 64비트 정수로 교체했더니 인터프리터가 17% 빨라졌다
Replacing a Rust Enum with a 64-Bit Word Made My Interpreter 17% Faster

Plush 인터프리터 개발자가 Rust의 태그된 enum(16바이트)을 64비트 워드에 저비트 태깅(low-bit tagging) 기법을 적용한 새 값 표현으로 교체했습니다. 이 기법은 힙 객체의 정렬된 주소와 정수의 하위 비트를 활용해 태그를 저장하며, 플로트는 셀프 태깅 방식을 사용합니다. 그 결과 메모리 사용량이 줄었을 뿐만 아니라, 예상과 달리 성능도 17% 향상되었습니다. 이 글은 값 표현 설계의 세부 사항과 ARM64 어셈블리 수준의 최적화 예시를 설명합니다.
값의 배열이 크다면, 그 배열에는 엄청난 양의 빈 낭비 바이트가 들어 있게 됩니다. 이런 것이 VM 엔지니어들이 밤에 잠을 이루지 못하고 우는 이유입니다.