CPython contre PyPy contre Pyston

introduction

Récemment, j'ai vu des articles sur Pyston 2 en ligne. 20% plus rapide que Python, "Pyston 2.0" est désormais disponible

C'était un système de traitement Python dont je n'avais jamais entendu parler auparavant, alors je l'ai installé et comparé la vitesse à d'autres systèmes de traitement.

Je l'ai exécuté dans l'environnement suivant.

Windows 10 Home 19041.630
Ubuntu-20.04 on WSL
Python 3.8.5 (Officiel, sous CPython)
Python 3.6.9 (PyPy 7.3.1)
Python 3.8.2 (Pyston 2.0.0)

J'ai utilisé WSL car Pyston n'est actuellement disponible que sur Ubuntu.

Cette fois, j'omettrai chaque méthode d'installation. Veuillez installer en vous référant à chaque page d'accueil.

programme

Exécutez timeest.py en Python, appelez _timetest.py dans chaque système de traitement de l'intérieur et obtenez le résultat en utilisant le sous-processus.

# 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="")

Résultat d'exécution

J'avais hâte de voir à quelle vitesse Pyston était, ** Eh bien, le résultat est qu'il est plus lent que CPython. ** **

La première place était PyPy, ce qui était raisonnablement attendu, mais il ne s'est jamais avéré que Pyston était plus lent que CPython ...

CPython PyPy Pyston
3.415[sec] 0.472[sec] 4.088[sec]

Bien sûr, je pense que cela va bien avec ce programme, mais c'est dommage.

enfin

Bien que ce fut un résultat décevant, PyPy à la 1ère place est plus de 7 fois plus rapide que les autres. Si vous décidez de l'utiliser maintenant, PyPy a beaucoup de manuels.

Il semble qu'il y ait encore de nombreuses améliorations, alors j'aimerais m'y attendre à l'avenir.

C'est encourageant d'avoir une étoile: détendu: Merci pour la lecture.

Recommended Posts

CPython contre PyPy contre Pyston
Comparaison de vitesse entre CPython et PyPy