Bun은 Zig로 작성되어 네이티브 코드로 컴파일되며, Node.js의 libuv 오버헤드 없이 직접 시스템 호출에 접근하여 사용자/커널 모드 전환을 최소화하고 파일 읽기 속도를 극대화합니다. 🚀
패키지 잠금 파일(lock file) 관리에 있어 JSON/YAML 대신 '배열 구조(Structure of Arrays)'를 사용하여 캐시 친화적인 단일 대규모 배열을 생성, CPU가 한 번의 메모리 페치로 모든 데이터를 로드할 수 있게 하여 비효율적인 메모리 할당과 캐시 미스를 방지합니다. 💾
타르볼(tarball) 압축 해제 시, 파일을 메모리에 먼저 다운로드한 후 압축 해제되지 않은 파일 크기를 미리 파악하여 필요한 메모리를 한 번에 할당함으로써 불필요한 데이터 복사와 메모리 재할당을 제거하고, 더 빠른 압축 해제 라이브러리를 사용합니다. 📦
설치 과정의 무거운 부분을 위해 비동기 DNS 해결 및 멀티코어 병렬 처리를 활용하여 모든 CPU 코어를 최대한 활용함으로써 전반적인 처리 속도를 향상시킵니다. ⚡