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

Python이 3.13 베타 3 릴리스로 Free-threaded 빌드 모드, 실험적 JIT, 증분 가비지 컬렉터를 도입해 동시성과 성능 개선 기반 마련

Python 3.13.0 beta 3 released

Thomas Wouters2024년 6월 27일6intermediate

Context

Python은 Global Interpreter Lock(GIL)으로 인해 멀티스레드 환경에서 병렬 실행이 제한되는 근본적 한계가 있었다. 또한 대규모 객체를 다루는 프로그램에서 전체 가비지 컬렉션으로 인한 긴 pause time이 발생했다.

Technical Solution

  • GIL을 비활성화하는 Free-threaded 빌드 모드를 실험적으로 도입: Windows와 macOS 설치 프로그램에서 선택 가능하게 제공
  • 예비 실험적 JIT를 포함해 향후 성능 개선을 위한 기반 마련
  • 가비지 컬렉터를 증분(incremental) 방식으로 변경: 전체 pause 시간을 단축
  • mimalloc 메모리 할당자를 플랫폼별 지원 시 기본 활성화 (Free-threaded 모드에서 필수)
  • 대화형 인터프리터를 PyPy 기반으로 개선: 다중 라인 편집, 색상 지원, 컬러 예외 트레이스백 추가
  • docstring의 선행 들여쓰기 자동 제거: 메모리 사용량과 .pyc 파일 크기 감소
  • dbm.sqlite3를 dbm 모듈의 새로운 기본 백엔드로 설정

Impact

아티클에 정량적 성능 수치가 명시되어 있지 않음.

Key Takeaway

Python 3.13은 GIL 제거, 증분 가비지 컬렉션, JIT 기반 마련이라는 세 가지 핵심 개선으로 멀티스레드 성능과 메모리 관리의 장기적 진화를 시작했다. 베타 3 단계에서 광범위한 커뮤니티 테스트를 통한 피드백 수집이 최종 릴리스 품질 결정의 핵심이다.


멀티스레드 기반 Python 서비스를 운영하는 팀은

3.13 베타 버전을 비프로덕션 환경에서 충분히 테스트하여 Free-threaded 빌드 모드 도입 타이밍을 전략적으로 평가해야 한다. 특히 대규모 객체 처리 시스템은 증분 GC의 pause time 단축 효과를 측정해 업그레이드 우선순위를 결정할 수 있다.

원문 읽기