Project Leyden은 OpenJDK 프로젝트 중 가장 활발하게 진행되는 프로젝트 중 하나로, 지난 한 달간 527건 이상의 커밋이 이루어질 정도로 개발이 가속화되고 있습니다. 특히 Aleksey Shipilëv의 제안은 “premain” Leyden JDK 빌드를 직접 구축하여 성능을 테스트하는 계기가 되었습니다.
기준 시작 시간 개선
-
이전 최고 기록: AOTCache와 JRuby의 “dev” 모드를 사용하여 423ms를 기록했습니다.
-
최신 Leyden 패치 적용:
--dev플래그를 제외하고 JRuby와 JVM의 완전한 최적화를 허용하여 353ms의 시작 시간을 달성했습니다. 이는 이전 최고 기록보다 16% 이상 빠른 성능입니다. -
AOTCache 크기: 이번에 생성된 AOTCache는 110MB로, 이전 60MB 대비 약 50MB 증가했으나, 이는 성능 향상에 기여하는 것으로 보입니다.
gem list 명령 성능 향상
gem list 명령의 성능은 JRuby의 실제 활용 시나리오에서 중요한 지표입니다.
-
훈련 없는
gem list: 기본 JRuby 시작을 위해 훈련된 AOTCache만 사용했을 때, 88개의 젬 목록을 가져오는 데 919ms가 소요되었습니다. 이는 아무런 도움 없이 1546ms가 걸리던 것에 비해 40% 단축된 수치이며, 특정 훈련 없이도 서브-세컨드(sub-second) 실행 시간을 달성했습니다. 이는 일반적인 JRuby 개발 환경에서 광범위한 개선 효과를 기대할 수 있음을 의미합니다. -
맞춤형 훈련을 통한
gem list:gem list명령을 위해 AOTCache를 특별히 훈련한 결과, 실행 시간이 714ms로 단축되었습니다. 이는 이전 최고 기록인 825ms보다 13% 빠른 성능이며, 어떠한 최적화도 비활성화하지 않은 결과입니다. -
맞춤형 AOTCache 크기: 이 경우 AOTCache 크기는 175MB에 달했습니다.
이러한 결과는 Project Leyden의 “premain” 패치가 JRuby의 시작 시간과 특정 명령 실행 시간을 획기적으로 개선하고 있음을 명확히 보여줍니다.