본문 바로가기
파이썬

파이썬 PyPy-CPython을 어떻게 이길 수 있습니까?

by º기록 2020. 12. 8.
반응형


PyPy는 Python을 다시 구현 한 것입니다. in Python, using advanced techniques to try to attain better performance than CPython. Many years of hard work have finally paid off. Our speed results often beat CPython, ranging from being slightly slower, to speedups of up to 2x on real application code, to speedups of up to 소규모 벤치 마크에서 10 배.


(관련 메모에서 ... 왜 이런 식으로 시도하겠습니까?)

 

해결 방법

 

1 사분기. 어떻게 가능합니까?

수동 메모리 관리 (CPython이 계산과 함께 수행하는 작업)는 경우에 따라 자동 관리보다 느릴 수 있습니다.

CPython 인터프리터 구현의 제한으로 인해 PyPy가 수행 할 수있는 특정 최적화 (예 : 세밀한 잠금)가 제외됩니다.

Marcelo가 언급했듯이 JIT. 즉석에서 객체 유형을 확인할 수 있으면 호출하려는 메서드에 최종적으로 도달하기 위해 여러 포인터 역 참조를 수행 할 필요가 없습니다.

2 분기. PyPy를 구현하는 데 사용 된 Python 구현은 무엇인가요?


Q3. 그리고 PyPyPy 또는 PyPy PyPy가 점수를 깰 확률은 얼마인가요?

이는 이러한 가상 해석기의 구현에 달려 있습니다. 예를 들어 그들 중 하나가 소스를 가져 와서 어떤 종류의 분석을 한 다음 잠시 실행 한 후 직접 대상 특정 어셈블리 코드로 변환하면 CPython보다 훨씬 빠를 것이라고 생각합니다.


4 분기. 왜 이런 식으로 시도하겠습니까?


우리는 다음을 제공하는 것을 목표로합니다.

    제작을위한 공통 번역 및 지원 프레임 워크
    implementations of dynamic languages, emphasizing a clean
    separation between language specification and implementation
    상들. 이를 RPython 도구 모음 _이라고합니다.

    규정을 준수하고 유연하며 빠른 Python_ 구현 Language which uses the above toolchain to enable new advanced high-level features without having to encode the low-level 세부.

이러한 방식으로 우려 사항을 분리함으로써 Python 구현-및 other dynamic languages - is able to automatically generate a Just-in-Time compiler for any dynamic language. It also allows a mix-and-match approach to implementation decisions, including many that have historically been outside of a user's control, such as target platform, memory and threading models, garbage collection strategies, and optimizations applied, including whether or not to 처음에 JIT가 있습니다.

C 컴파일러 gcc는 C로 구현되고 Haskell 컴파일러 GHC는 Haskell로 작성되었습니다. 파이썬 인터프리터 / 컴파일러가 파이썬으로 작성되지 않은 이유가 있습니까?

 

참조 페이지 https://stackoverflow.com/questions/2591879

 

 

반응형

댓글