CPython vs PyPy vs Pyston

소개



최근 인터넷에서 Pyston2에 대한 기사를 볼 수 있습니다.
파이썬보다 20% 빠른 'Pyston 2.0' 등장

지금까지 들은 적이 없는 Python 처리계였으므로 설치해 다른 처리계와의 속도 비교를 해 보았습니다.

다음 환경에서 실행했습니다.
Windows 10 Home 19041.630
Ubuntu-20.04 on WSL
Python 3.8.5 (公式、以下CPython)
Python 3.6.9 (PyPy 7.3.1)
Python 3.8.2 (Pyston 2.0.0)

Pyston은 현재 우분투에서만 사용할 수 있기 때문에 WSL을 사용했습니다.

이번에는 각각의 설치 방법은 생략합니다.
각 홈페이지 등을 참고하여 설치하십시오.

프로그램



파이썬에서 timetest.py를 실행하고 내부에서 각 처리 시스템에서 _timetest.py를 호출하고 subprocess를 사용하여 결과를 얻습니다.
# timetest.py

import subprocess

binaries = ["python3", "pypy3", "pyston"]

for binary in binaries:
    out = subprocess.check_output([binary, "./_timetest.py"])
    print(out.decode())

# _timetest.py

import time, sys

def main_func(number):
    big_array = []
    one_tenth = number // 10
    for i in range(10):
        big_array.append([])
        little_array = big_array[i]
        for j in range(one_tenth):
            data = i * one_tenth + j
            little_array.append(data)
    return big_array

def clock(number):
    start = time.time()
    _ = main_func(number)
    result = time.time() - start
    rounded = round(result, 3)
    return rounded

number = 40_000_000
version = sys.version

binary = "PyPy" if "PyPy" in version else "Pyston" if "Pyston" in version else "CPython"
result = clock(number)

print(f"{binary}\t{result}[sec]", end="")


실행 결과



Pyston은 얼마나 빠른지 기대하고 있었습니다만,
뭐, 뭐, CPython보다 느린 결과가 되었습니다.

1위는 PyPy로 이것은 예상 도리였지만, 설마 Pyston이 CPython보다 느린 결과가 된다고는...


CPython
PyPy
Pyston


3.415[sec]
0.472[sec]
4.088[sec]


물론 이 프로그램과의 궁합도 있다고는 생각합니다만 매우 유감입니다.

사이고에게



유감스러운 결과가 되어 버렸습니다만 1위의 PyPy는 다른 것보다 7배 이상 고속입니다.
만약 지금 사용하게 되면 매뉴얼도 풍부한 PyPy군요.

아직 개선점은 많이 있는 것 같기 때문에 앞으로에 기대하고 싶습니다.

스타를 붙이면 격려가됩니다
읽어 주셔서 감사합니다.

좋은 웹페이지 즐겨찾기