피드로 돌아가기
Python 3.13.0 beta 4 released
Python InsiderPython Insider
Backend

Python이 3.13 beta 4 릴리스로 Global Interpreter Lock 비활성화, 실험적 JIT 컴파일러, 증분 가비지 컬렉션 도입

Python 3.13.0 beta 4 released

Thomas Wouters2024년 7월 18일6intermediate

Context

Python의 기존 Global Interpreter Lock(GIL)은 다중 스레드 환경에서 동시 실행을 제한했고, 대규모 객체를 다루는 프로그램에서는 가비지 컬렉션 일시 중지가 성능 병목이 되었다. 또한 대화형 인터프리터의 사용성 제한과 메모리 효율성 문제가 지속되었다.

Technical Solution

  • GIL 비활성화 모드 추가: 실험적 free-threaded 빌드 모드 도입으로 스레드의 더 높은 동시성 실행 지원 (Windows, macOS 설치 프로그램에 포함)
  • 실험적 JIT 컴파일러 도입: 향후 성능 개선을 위한 기초 작업 추진
  • 증분 가비지 컬렉션 구현: 기존 전체 객체 수집 방식에서 증분식 수집으로 변경해 컬렉션 일시 중지 시간 단축
  • 메모리 최적화: Docstring 선행 들여쓰기 제거로 메모리 사용량 및 .pyc 파일 크기 감소
  • mimalloc 통합: 수정된 mimalloc을 플랫폼 지원 시 기본 활성화, free-threaded 빌드 모드에서 필수 구성
  • PyPy 기반 대화형 인터프리터 개선: 다중 라인 편집, 색상 지원, 색상화된 예외 트레이스백 추가
  • 로컬 변수 매핑 의미론 정의: locals() 빌트인 함수의 반환 매핑 변경 시 일관된 동작으로 디버거 호환성 개선

Impact

아티클에 정량적 성능 수치가 명시되지 않았다.

Key Takeaway

Python 3.13은 언어 런타임 수준에서 다중 스레드성(GIL 제거), JIT 컴파일, 메모리 관리 최적화를 동시에 추진함으로써 기존 일반 목적 언어의 근본적 한계를 해결하려는 장기 로드맵을 구현 중이다. 베타 단계에서 광범위한 커뮤니티 테스트를 통해 ABI 변경 최소화를 목표로 하고 있다.


Python 기반 멀티스레드 애플리케이션 개발 팀은

3.13 베타 단계에서 free-threaded 빌드 모드를 테스트하여 기존 GIL 한계로 인한 스레드 동시성 제한 문제 해결 가능성을 조기에 검증할 수 있고, 향후 정식 릴리스 시 마이그레이션 계획 수립에 활용할 수 있다.

원문 읽기