피드로 돌아가기
Python InsiderBackend
원문 읽기
Python 팀이 3.13 베타 2를 릴리스하며 실험적 free-threading 모드, JIT 컴파일러, 증분 가비지 컬렉션 도입
Python 3.13.0 beta 2 released
AI 요약
Context
Python의 Global Interpreter Lock(GIL)은 멀티스레드 환경에서 동시성을 제한하고 있었다. 또한 전체 힙에 대한 동기 가비지 컬렉션은 대규모 객체를 다루는 프로그램에서 긴 일시정지 시간을 초래했다.
Technical Solution
- GIL 제거: 실험적 free-threading 빌드 모드(python3.13t)를 제공하여 스레드가 더 동시에 실행될 수 있도록 지원
- 가비지 컬렉션 개선: 순환 참조 가비지 컬렉터를 증분 방식으로 변경하여 컬렉션 일시정지 시간 단축
- JIT 컴파일러 통합: 예비적 실험적 JIT를 도입하여 향후 성능 개선의 기초 마련
- 메모리 최적화: 메모리 할당을 위해 mimalloc 모듈을 포함(플랫폼 지원 시 기본 활성화)
- 도킷스트링 정규화: 도킷스트링의 앞부분 들여쓰기를 제거하여 .pyc 파일 크기 감소
- 대화형 인터프리터 개선: PyPy 기반의 새로운 대화형 인터프리터 도입으로 다중행 편집 및 색상 지원 추가
- dbm 모듈 변경: 새로운 파일 생성 시 기본값으로 dbm.sqlite3 백엔드 사용
Impact
아티클에서 정량적 성능 수치는 제시되지 않음.
Key Takeaway
Python 3.13은 멀티스레드 동시성, 메모리 효율성, 런타임 성능의 세 가지 영역을 동시에 개선하고 있으며, free-threading은 실험적 기능으로 제공되어 프로덕션 사용 전 충분한 커뮤니티 테스트를 통해 안정성을 검증하는 전략을 취하고 있다.
실천 포인트
Python 기반 멀티스레드 애플리케이션을 개발 중인 엔지니어는
3.13 베타 단계부터 free-threading 빌드(python
3.13t)를 테스트하여 GIL 제거로 인한 성능 변화와 스레드 안전성 이슈를 조기에 발견할 수 있다. 특히 대규모 객체를 처리하는 시스템에서는 증분 가비지 컬렉션을 통해 일시정지 시간 감소 효과를 측정해야 한다.