JRuby 10은 Ruby 3.4 호환성을 달성하고 최신 JVM 기능을 활용하여 성능과 활용성을 대폭 향상시켰습니다.
1. 주요 성능 개선
- 시작 및 워밍업 시간: JVM의 AppCDS 도입으로 JRuby 10의 시작 속도가 크게 개선되었습니다. 향후 Project Leyden (AOT 캐시) 및 Project CRaC (프로세스 상태 복원)을 통해 거의 즉각적인 시작이 가능해질 전망입니다.
- 코드 실행 효율성: JRuby는 발전된 JVM의 JIT 컴파일러를 통해 Ruby 코드를 고성능으로 실행합니다. 순수 Ruby 코드, Java로 포팅된 C 확장, 그리고 객체 할당 및
Data
객체 생성 모두에서 C Ruby 대비 우월한 성능을 보이며, Graal JIT는 불필요한 할당을 제거하여 효율성을 극대화합니다. - 동시성 강화: Project Loom의 가상 스레드(Virtual Threads) 도입으로 JRuby 파이버 성능이 획기적으로 향상되어 C Ruby보다 빠른 동시성 처리를 가능하게 합니다.
2. 멀티코어 활용 및 Rails 효율성
- JRuby는 스레드 안전한 코드를 통해 시스템의 모든 코어를 즉시 활용하여 뛰어난 동시성 성능을 제공합니다. Rails 애플리케이션의 경우, 단일 JRuby 프로세스로 전체 사이트를 운영하여 C Ruby의 다중 프로세스 방식보다 메모리 사용량을 줄이고 리소스 대비 초당 요청 수를 크게 개선합니다.
3. 루비 활용 기회 확장
- JRuby는 Ruby 애플리케이션을 Java 기반 기업 환경에 쉽게 배포하거나 단일 바이너리로 패키징하여 상업용 소프트웨어로 제공할 수 있습니다. Java Swing GUI, Android 애플리케이션(Ruboto), Minecraft 플러그인 등 다양한 Java 생태계에서 Ruby를 활용할 수 있는 새로운 기회를 제공합니다.