TruffleRuby 정규 표현식: C 코드 및 SIMD보다 200배 빠름

2025-03-18
TruffleRuby 정규 표현식: C 코드 및 SIMD보다 200배 빠름

이 블로그 게시글에서는 Ruby에서 JSON 문자열 이스케이핑의 성능 최적화에 대해 다룹니다. 벤치마크는 세 가지 접근 방식을 비교합니다. 순수 Ruby 버전, SIMD 명령어를 사용하는 C 확장 및 TruffleRuby에서의 순수 Ruby 버전입니다. 놀랍게도 TruffleRuby의 순수 Ruby 버전은 고급 JIT 컴파일러와 TRegex 엔진을 활용하여 C 확장 및 SIMD보다 20배 빠르며, 경우에 따라 기준 C 코드보다 200배 이상 빠릅니다. 이는 TruffleRuby의 TRegex 엔진이 정규 표현식을 결정적 유한 오토마타로 컴파일하고, 백트래킹을 방지하며, SIMD 명령어를 사용하여 최적화하기 때문입니다. `Time.new(String)` 및 `StringScanner#scan_integer`에 대해서도 유사한 비교가 수행되며, TruffleRuby의 정규 표현식 구현은 CRuby의 C 구현을 크게 능가합니다. 이는 고급 JIT 컴파일러와 결합된 간결한 순수 Ruby 코드가 저수준 언어의 성능을 능가할 수 있음을 보여줍니다.

더 보기
개발