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

Python이 3.13 베타 1 릴리스로 대화형 인터프리터 개선, 무료 스레딩 모드, 실험적 JIT 컴파일러, 증분 가비지 컬렉션을 도입

Python 3.13.0 beta 1 released

Thomas Wouters2024년 5월 8일5intermediate

Context

Python의 기존 인터프리터는 단일 스레드 성능에 의존하며 Global Interpreter Lock으로 인해 멀티스레드 환경에서 병렬성이 제한되어 있다. 표준 라이브러리는 역사적으로 유지되지 않는 모듈들을 포함하고 있으며, 가비지 컬렉션 일시 중지가 대규모 객체 프로그램에서 성능 저하를 야기한다.

Technical Solution

  • 새로운 대화형 인터프리터 도입: PyPy 기반으로 멀티라인 편집, 컬러 지원, 색상화된 예외 트레이스백 제공
  • 무료 스레딩 빌드 모드 추가: Global Interpreter Lock을 비활성화하여 스레드들의 동시 실행 허용
  • 실험적 JIT 컴파일러 포함: 향후 성능 개선을 위한 기초 구현
  • 증분 가비지 컬렉션 적용: 순환 참조 가비지 컬렉션을 증분 방식으로 변경하여 컬렉션 일시 중지 시간 단축
  • Docstring 메모리 최적화: 선행 들여쓰기 제거로 메모리 사용량과 .pyc 파일 크기 감소
  • mimalloc 통합: 선택적이지만 기본 활성화되는 메모리 할당자 포함 (무료 스레딩 빌드에서는 필수)
  • dbm.sqlite3 백엔드 추가: 새 파일 생성 시 기본 dbm 백엔드로 설정
  • 표준 라이브러리 정리: PEP 594에 따라 18개 모듈 제거 (aifc, audioop, chunk, cgi, cgitb, crypt, imghdr, mailcap, msilib, nis, nntplib, ossaudiodev, pipes, sndhdr, spwd, sunau, telnetlib, uu, xdrlib, lib2to3)

Key Takeaway

Python 3.13은 대화형 개발 경험 개선, 멀티스레드 성능 향상, 장기적 JIT 성능 기반 마련을 통해 언어 생태계를 현대화하되, 베타 단계에서의 광범위한 테스트를 통해 7월 30일 릴리스 후보 진입 이전까지 기능 수정이 가능하도록 설계했다.


Python 워크로드를 운영하는 엔지니어들은

3.13 베타 단계에서 무료 스레딩 모드(Global Interpreter Lock 비활성화)를 테스트하여 기존 멀티스레드 애플리케이션의 동시성 성능 변화를 측정할 수 있으며, 제거되는 18개 표준 라이브러리 모듈의 사용 여부를 미리 파악하여 마이그레이션 계획을 수립해야 한다.

원문 읽기