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군요.
아직 개선점은 많이 있는 것 같기 때문에 앞으로에 기대하고 싶습니다.
스타를 붙이면 격려가됩니다
읽어 주셔서 감사합니다.
Reference
이 문제에 관하여(CPython vs PyPy vs Pyston), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Latte72/items/829132f5415198d3315a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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)
파이썬에서 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군요.
아직 개선점은 많이 있는 것 같기 때문에 앞으로에 기대하고 싶습니다.
스타를 붙이면 격려가됩니다
읽어 주셔서 감사합니다.
Reference
이 문제에 관하여(CPython vs PyPy vs Pyston), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Latte72/items/829132f5415198d3315a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
유감스러운 결과가 되어 버렸습니다만 1위의 PyPy는 다른 것보다 7배 이상 고속입니다.
만약 지금 사용하게 되면 매뉴얼도 풍부한 PyPy군요.
아직 개선점은 많이 있는 것 같기 때문에 앞으로에 기대하고 싶습니다.
스타를 붙이면 격려가됩니다
읽어 주셔서 감사합니다.
Reference
이 문제에 관하여(CPython vs PyPy vs Pyston), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Latte72/items/829132f5415198d3315a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)