피드로 돌아가기
Python 3.13.0 (final) released
Python InsiderPython Insider
Backend

Python이 3.13 메이저 릴리스를 출시하며 Global Interpreter Lock 비활성화, JIT 컴파일러, 개선된 대화형 인터프리터 도입

Python 3.13.0 (final) released

Thomas Wouters2024년 10월 7일5intermediate

Context

Python은 멀티스레드 환경에서 Global Interpreter Lock(GIL)으로 인한 동시성 제한과 인터프리터 성능 병목, 메모리 사용량 증가 문제를 지속적으로 마주했다.

Technical Solution

  • Free-threaded 빌드 모드 도입: GIL을 비활성화하여 스레드가 더 동시적으로 실행되도록 구성 (Windows, macOS 설치 프로그램에서 실험적 기능으로 제공)
  • 예비 실험적 JIT 컴파일러 구현: 향후 성능 개선을 위한 기초 작업 진행
  • 대화형 인터프리터 개선: PyPy 기반으로 다중 라인 편집, 색상 지원, 컬러화된 예외 트레이스백 추가
  • Docstring 메모리 최적화: 선행 들여쓰기 제거로 메모리 사용량 감소 및 .pyc 파일 크기 축소
  • mimalloc 통합: 수정된 mimalloc을 기본으로 포함 (플랫폼 지원 시), free-threaded 빌드 모드에서 필수 사용
  • dbm.sqlite3 백엔드 도입: dbm 모듈에서 새 파일 생성 시 기본 백엔드로 지정
  • PEP 594 준수 모듈 제거: 18개의 deprecated 모듈(aifc, audioop, chunk, cgi 등) 및 표준 라이브러리의 deprecated 클래스·함수·메서드 제거
  • 플랫폼 지원 재편성: WASI를 Tier 2 지원, iOS/Android를 Tier 3 지원으로 추가, Emscripten 공식 지원 종료, macOS 최소 버전을 10.9에서 10.13(High Sierra)으로 상향

Key Takeaway

Python 3.13은 동시성(GIL 제거), 성능(JIT), 개발자 경험(향상된 인터프리터) 세 가지 핵심 영역을 동시에 개선하며, 이러한 멀티 에리어 개선은 언어의 다양한 워크로드(멀티스레드 애플리케이션, CPU 바운드 작업, 대화형 개발)에 대한 적응성을 높인다.


멀티스레드 기반의 Python 애플리케이션을 운영하는 팀은 Python

3.13의 free-threaded 빌드 모드를 테스트 환경에서 검증하여 GIL 비활성화로 인한 동시성 향상 여부를 측정할 수 있으며, 특히 I/O 대기 시간이 적은 CPU 바운드 멀티스레드 워크로드에서 성능 이득을 기대할 수 있다.

원문 읽기