핵심 요약
- 개발자가 순수 함수형 프로그래밍 언어 Roc을 이용해 C 언어 DEFLATE 압축 끝판왕인 libdeflate 성능에 도전했습니다.
- Silesia 말뭉치 벤치마크 결과, M1 맥북 프로에서 단 2.6%, AMD 라이젠 환경에서 8.9% 차이로 C 언어를 맹추격했습니다.
- 함수형 언어의 성능 한계에 대한 편견을 깨고 극단적 튜닝으로 C 수준에 10% 미만으로 근접할 수 있음을 보여주었습니다.
요약 순수 함수형 프로그래밍(FP) 언어가 과연 하드웨어 극한의 성능을 자랑하는 C 언어의 속도를 따라잡을 수 있을까요? 최근 프로그래밍 커뮤니티에서는 함수형 증명 보조 언어인 Lean 4로 작성된 'lean-zip' 라이브러리가 10억 회 이상 다운로드된 Rust 패키지(miniz_oxide)의 압축 속도를 능가했다는 소식이 전해지며 큰 화제를 모았습니다. 하지만 해당 글에서도 DEFLATE 압축 업계의 절대 강자인 C 언어 기반 'libdeflate'에는 아키텍처 특화 SIMD 최적화의 한계로 크게 뒤처진다고 인정한 바 있습니다.
이에 자극을 받은 개발자가 런타임 성능을 최우선 목표로 설계 중인 순수 함수형 프로그래밍 언어 'Roc'을 가지고 C 언어 종결자인 libdeflate에 정면 도전장을 내밀었습니다. Roc은 아직 0.1.0 정식 버전 출시를 앞둔 신생 언어로 생태계 최적화가 거의 이뤄지지 않은 상태였으나, 언어 자체의 설계와 컴파일러 기반을 바탕으로 충분히 해볼 만하다고 판단한 것입니다.
작성자는 Niclas Ahden이 개발한 DEFLATE 패키지 'roc-deflate'를 기반으로 강도 높은 성능 최적화 작업을 진행했습니다. 벤치마크는 클래식 Silesia 말뭉치를 사용해 압축 결과가 일치하는지 검증하며, M1 맥북 프로와 AMD 라이젠 9 3900X(우분투) 환경에서 144회에 걸쳐 libdeflate와 비스트리밍 속도를 비교 측정했습니다.
그 결과, 순수 함수형 언어로 작성된 roc-deflate는 C 언어의 libdeflate를 바짝 추격하는 놀라운 성능을 보여주었습니다. 라이젠 9 3900X 기준 중간값 8.9% 느린 수준에 그쳤고, M1 맥북 프로 환경에서는 C 언어 라이브러리와 고작 2.6% 차이밖에 나지 않는 압도적인 추격률을 기록했습니다. 비록 C 언어를 완전히 넘어서진 못했지만, 순수 함수형 언어도 극단적인 최적화를 거치면 C 언어에 10% 미만으로 근접할 수 있음을 증명하며 개발자들의 이목을 끌고 있습니다.
Sponsored · 광고