Python 3.15, JIT 컴파일러 성능 7~8% 향상

Python 3.15.0

Python 3.15.0이 2026년 10월 9일 정식 출시됐다. 1,012명의 기여자가 5,643개의 커밋을 통해 완성한 이번 버전은 실험적 JIT 컴파일러가 x86-64 Linux에서 기하평균 7~8%, AArch64 macOS에서 11~12% 성능 향상을 이뤘다. 또한 sentinel과 frozendict 내장 타입 추가, UTF-8 기본 인코딩, 지연 임포트, Tachyon 프로파일러 등이 포함됐다.

당신은 인터프리터 내부 어딘가에 있는 Startup Foyer에서 깨어나 Release Gate까지 나아갑니다. 도중에 18개의 퍼즐이 있고, 각 퍼즐은 실제 3.15 기능을 사용해야 풀 수 있습니다. 단순히 지루한 질문에 답하는 게 아니라, Python 3.15 인터프리터에서 실제로 코드를 작성하고 실행하는 겁니다.
  1. simonw

    오픈 소스 Python 라이브러리를 잔뜩 유지보수하는 사람으로서, 새 Python 릴리스에서 내가 가장 좋아하는 점은 구버전 지원이 끝난다는 신호라는 거예요. 이번 경우는 Python 3.10인데... 덕분에 현재의 모든 Python 버전을 지원하려는 제 라이브러리들이 드디어 Python 3.11의 기능들을 받아들일 수 있게 됐습니다!

    여기 "Python 3.11의 새로운 기능" 문서가 있습니다: https://docs.python.org/3/whatsnew/3.11.html

  2. ngoldbaum

    제가 가장 강조하고 싶은 기능은 free-threaded 빌드를 위한 새로운 “abi3t” stable ABI입니다. CPython 구현은 대부분 Petr Viktorin이 했지만, 저는 생태계 지원이 준비되도록 하는 일을 맡아 왔습니다. 모든 것이 제대로 동작하게 만드는 건 보람 있으면서도 꽤 도전적인 프로젝트였습니다. beta1 릴리스를 앞두고 Windows 특정 문제를 발견해서 수정해야 했던 날에는 늦은 밤까지 작업하기도 했습니다.

    특히 자랑스러운 점은 cryptography 프로젝트가 이미 Python 3.15 이상에서 각 플랫폼마다 단일 abi3.abi3t wheel을 배포하고 있다는 것입니다. 이제 PyObject가 opaque이기 때문에 GIL이 활성화된 빌드와 free-threaded 빌드가 같은 wheel을 함께 사용할 수 있습니다.

    이에 대해 더 알고 싶으시다면, 올해 EuroPython에서 Python의 ABI와 오늘날 abi3t를 빌드하고 릴리스하기까지의 여정에 대해 발표했습니다. https://youtu.be/An8lO29SxXE 를 참고하세요.

  3. zahlman

    XZ로 압축된 소스 tarball이 3.14 것보다 한 1.5배 정도 커졌습니다. 무슨 일이 있었던 걸까요?

    수정: 좀 더 파보니, 예상대로 전반적으로 많은 것들이 조금씩 커졌습니다. 그런데 눈에 띄게도 documentation 폴더에 합계 10MB가 넘는 애니메이션 GIF 두 개가 추가되었습니다(아마 XZ로도 그렇게까지 더 압축되지는 않겠죠). 이 GIF들은 “tachyon”을 보여주는데(아마 새로운 샘플링 프로파일러를 가리키는 듯합니다, https://docs.python.org/3.15/library/profiling.sampling.html ), 터미널 세션 화면 캡처로 보입니다. TUI가 어떻게 생겼는지 보여주기에는 충분하지만, 사용법에 대해서는 그다지 유익하지는 않을 것 같습니다. 저는 정적 스크린샷을 바탕으로 한 SVG 다이어그램이 훨씬 좋았을 것 같습니다.

  4. wg0

    이 말이 많은 사람을 거슬리게 할 수도 있지만, 앞으로 살아남는 언어는 다음뿐이라고 봅니다:

    1. Typescript + Javascript

    2. Rust.

    3. Python - 데이터 과학과 인터랙티브 앱 덕분에.

    기본적으로, AI가 있든 없든 Rust로 다시 쓸 수 있는 것은 앞으로 10년 안에 AI가 있든 없든 Rust로 다시 쓰일 겁니다.

    유명한 사례들:

    1. 37 signals의 일부 백엔드가 Ruby에서 Rust로.

    2. Bun이 Zig에서 Rust로.

    3. Git이 전환 중.

    4. Mold 링커가 C에서 Rust로.

    5. Biome

    6. TailwindCSS CLI

    그리고 훨씬 더 많습니다. 제가 틀리지 않았다면 Python 인터프리터조차 Rust를 주 언어로 사용하는 과정에 있습니다.

    [0]. https://github.com/kevincouton/awesome-rust-migrations#1

  5. kbumsik

    > PEP 810: 더 빠른 시작 시간을 위한 명시적 lazy import

    네, lazy import! 드디어!

이 날의 다른 글

2026-10-09