Pyston 2, JIT 컴파일러를 사용한 Python 구현

XNUMX 년간의 개발 중단 끝에 Pyston 2 프로젝트의 출시가 게시되었습니다. 내가 무엇을 개발 했나Python 언어의 고성능 구현에 LLVM 프로젝트의 개발을 사용합니다.

구현 최신 JIT 컴파일 기술의 사용이 두드러집니다. C ++와 같은 전통적인 시스템 언어와 유사한 고성능을 달성하는 것을 목표로합니다.

이전 버전의 코드 작성자 Pyston Apache 라이선스에 따라 배포되었습니다., 그러나 Pyston 2 코드는 아직 사용할 수 없으며 Ubuntu 18.04 및 20.04 용으로 즉시 사용 가능한 빌드 만 릴리스되었습니다 (코드가있는 파일을 다운로드 할 수 있지만 프로젝트가 아직 닫혀 있다는 정보가있는 스텁 만 있음) .

코드 게시는 개발자 계획의 일부입니다.그러나 이것은 끝날 것입니다 비즈니스 모델 형성 완료 후 Dropbox의 재정적 지원없이 Pyston을 계속 개발하기로 결정했습니다.

Pyston 2 정보

이전 버전과 달리 Pyston 2는 안정적으로 표시됩니다. 평가판이 아닙니다. 성능을 최적화하기 위해 많은 작업이 수행되었으며 python-macrobenchmarks 테스트 스위트를 통과 할 때 Pyston 2는 이제 원래 Python 3.8보다 약 20 % 더 빠릅니다.

가장 눈에 띄는 성능 향상은 고유 한 웹 애플리케이션 워크로드에서 볼 수 있습니다. chaos.py 및 nbody.py와 같은 별도의 테스트에서 Pyston 2는 Python 3.8보다 2 배 더 우수한 성능을 보입니다. JIT 사용 비용은 메모리 소비가 약간 증가합니다.

Python 프로그래밍 언어의 더 빠르고 호환성이 뛰어난 구현 인 Pyston v2를 출시하게되어 매우 기쁩니다. 버전 2는 매크로 벤치 마크에서 표준 Python 20보다 3.8 % 빠릅니다. 더 중요한 것은 코드에서 더 빠를 가능성이 있다는 것입니다. Pyston v2는 서버 비용을 줄이고 사용자 대기 시간을 줄이며 개발자 생산성을 향상시킬 수 있습니다.

Pyston v2는 구현하기가 쉽기 때문에 더 나은 Python 성능을 찾고 있다면 XNUMX 분 동안 Pyston을 사용해 보는 것이 좋습니다. 그렇게하는 것은 프로젝트 속도를 높이는 가장 쉬운 방법 중 하나입니다.

호환성 측면에서 네이티브 Python, Pyston 프로젝트 CPython을위한 가장 호환 가능한 대체 구현으로 선전됩니다., Pyston은 주요 CPython 코드베이스의 포크이기 때문입니다.

피스톤 모든 CPython 기능을 지원합니다. C 확장을 개발하기위한 C API를 포함합니다. Pyston은 원래 Dropbox에서 개발했으며 2017 년 내부 개발을 중단하기로 결정했습니다. 2020 년 초, Pyston의 최고 개발자는 회사를 설립하고 프로젝트를 완전히 재창조하고 Pyston에서 정규직으로 일하기 시작했습니다.

Pyston 2 패딩에 대한 기술적 세부 사항은 아직 제공되지 않았으며 DynASM JIT, 인라인 캐싱 및 일반 CPython 최적화 만 언급됩니다. Pyston의 이전 버전은 현대 JavaScript 엔진의 JIT와 유사한 한 번에 하나의 JIT 메소드를 사용했습니다.

JIT에서 Python 코드가 구문 분석되고 번역되었습니다. 중간 표현 LLVM (IR, 중간 표현)으로. 또한 IR 표현은 LLVM 최적화 프로그램에서 처리되고 실행을 위해 LLVM JIT 엔진에 전달되어 IR 표현을 기계 코드로 변환했습니다.

동적 Python 언어로 된 프로그램의 변수 유형에 대한 정보를 얻기 위해 객체 유형의 확률 적 예측 기술이 사용 된 다음 실행 중에 올바른 유형 선택을 명확히했습니다.

따라서 Pyston은 예측 속도가 확인되는 경우 빠른 속도와 유형 불일치시 사용되는 느린 속도의 두 분기간에 실행을 지속적으로 변경했습니다.

작업은 다중 스레드 모드에서 수행 할 수 있습니다. Python 언어로 된 여러 코드 스레드의 병렬 실행을 허용하고 GIL (글로벌 인터프리터 잠금)이 없습니다.

최종적으로 그것에 대해 더 알고 싶다면에서 세부 정보를 확인할 수 있습니다. 다음 링크.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.