피드로 돌아가기
Python 3.13.0 release candidate 1 released
Python InsiderPython Insider
Backend

Python 3.13.0 RC1 출시로 Global Interpreter Lock 비활성화 실험 모드와 JIT 컴파일러 도입으로 멀티스레딩 동시성과 성능 개선 기반 마련

Python 3.13.0 release candidate 1 released

Thomas Wouters2024년 8월 1일6intermediate

Context

Python의 Global Interpreter Lock(GIL)은 멀티스레딩 환경에서 병렬 처리 성능을 제약하고 있으며, 인터프리터 기반의 느린 실행 속도는 CPU 집약적 작업에서 한계를 보이고 있다.

Technical Solution

  • 실험적 프리스레딩 빌드 모드(free-threaded build mode) 도입: GIL을 비활성화하여 스레드가 더 동시에 실행되도록 변경
  • 예비 실험적 JIT 컴파일러 도입: 향후 상당한 성능 개선을 위한 기반 작업 제공
  • 증분 가비지 컬렉션 방식 전환: 순환 참조 객체 정리 시 일괄 처리 대신 점진적으로 진행하여 컬렉션 중단 시간 단축
  • mimalloc 메모리 할당자 통합: 플랫폼 지원 시 기본 활성화, 프리스레딩 빌드 모드에서는 필수 사용
  • 상호작용형 인터프리터 개선: PyPy 기반으로 다중라인 편집, 색상 지원, 컬러화된 예외 추적(traceback) 추가
  • docstring 선행 공백 제거: 메모리 사용량 감소 및 .pyc 파일 크기 축소
  • dbm.sqlite3 백엔드 추가: 새 파일 생성 시 기본 백엔드로 사용

Key Takeaway

Python 3.13은 GIL 제거 모드와 JIT 컴파일러라는 장기적 성능 개선 기반을 실험 단계로 제공하며, 서드파티 라이브러리 유지보수자들은 RC 단계에서 호환성 테스트와 PyPI 배포 준비로 10월 최종 릴리스에 대비해야 한다.


Python 기반 멀티스레드 애플리케이션을 운영 중인 팀은

3.13 RC 단계에서 프리스레딩 빌드 모드를 테스트 환경에서 검증하고, 기존 C 확장 모듈의 GIL 관련 코드 호환성을 미리 점검하면 최종 릴리스 후 안정적인 업그레이드 경로를 확보할 수 있다.

원문 읽기