Ruby Ractor 성능 향상: 클래스 변수 경합 해결
2025-05-28
이 글에서는 Ruby Ractor가 클래스 인스턴스 변수를 처리할 때 발생하는 성능 병목 현상을 자세히 살펴봅니다. 전역 인터프리터 잠금으로 인해 여러 Ractor가 동시에 이러한 변수에 접근하면 성능이 크게 저하됩니다. 저자는 클래스 인스턴스 변수의 내부 구현을 면밀히 분석하고 객체 위임을 사용하여 잠금 경합을 해결하는 방법을 제안합니다. 이를 통해 마이크로 벤치마크에서 약 3배의 성능 향상을 달성했습니다. 또한, 이 해결책은 새로운 네임스페이스 기능으로 인해 도입된 버그와 성능 저하 문제도 예기치 않게 수정합니다.
개발