Selon l’équipe, la version 2 de Pyston peut de réduire les coûts du serveur, diminuer les temps de latence des utilisateurs et améliorer la productivité des développeurs. « Pyston v2 est facile à déployer, par conséquent si vous recherchez de meilleures performances Python, nous vous encourageons à prendre cinq minutes pour essayer Pyston. C'est l'un des moyens les plus simples d'accélérer votre projet », a-t-elle déclaré.
Améliorations des performances
L’équipe a annoncé que Pyston v2 offre une accélération notable sur de nombreuses charges de travail tout en ayant peu d'inconvénients. Elle s’est concentrée sur les charges de travail de service Web, mais Pyston v2 est aussi plus rapide sur d'autres charges de travail et de nombreux autres benchmarks populaires. En effet, elle a conçu une nouvelle suite publique de macrobenchmark Python qui mesure la performance de plusieurs projets Python couramment utilisés.
Elle estime que les benchmarks de cette suite sont plus importants que ceux des autres suites Python, ce qui les rend plus représentatifs des applications du monde réel. Même si cela donne un nombre de titres inférieur à celui d'autres projets, l’équipe pense que cela se traduit par une meilleure rapidité pour les cas d'utilisation réelle. Pyston v2 montre toujours des performances accélérées sur les microbenchmarks, étant deux fois plus rapide que Python standard sur des tests comme chaos.py et nbody.py.
Analyse des résultats
L’équipe a constaté que sur les benchmarks ciblés (djangocms + flaskblogging), Pyston v2 offre une accélération moyenne de 1,22 fois pour la latence moyenne et une amélioration de 1,18 fois pour la latence p99 tout en utilisant quelques mégaoctets supplémentaires par processus. La latence p99 est le 99e centile supérieur de la distribution du temps de réponse, et c'est une mesure courante utilisée dans les contextes de services Web, car elle peut fournir un aperçu de l'expérience utilisateur qui est perdue en prenant une moyenne.
La latence p99 élevée de PyPy sur les djangocms provient de pics de latence périodiques, vraisemblablement dus à des pauses dans la collecte des ordures. CPython et Pyston présentent tous deux des pics périodiques, probablement dus à leurs cycles de collecte, mais ils sont tous deux moins fréquents et beaucoup plus faibles. Les benchmarks mypy et PyTorch montrent une limite naturelle de Pyston v2. Ces benchmarks font tous deux l'essentiel de leur travail dans des extensions C qui ne sont pas affectées par les accélérations Python.
Approche technique
Certaines des techniques que l’équipe utilise dans Pyston v2 incluent :
- un JIT à très faible coût utilisant DynASM ;
- Quickening ;
- optimisations générales de CPython ;
- améliorations des processus de construction.
Compatibilité
Comme Pyston est un fork de CPython, l’équipe pense que c'est l'une des implémentations alternatives de Python les plus compatibles disponibles aujourd'hui. Elle supporte les mêmes fonctionnalités et API C que CPython. Bien que Pyston soit identique en théorie, dans la pratique, il existe quelques obstacles temporaires à la compatibilité pour toute nouvelle implémentation de Python.
Disponibilité
Selon l'équipe, Pyston v2 est immédiatement disponible sous forme de package pré-construit. Actuellement, il y a des paquets pour Ubuntu 18.04 et 20.04 x86_64. Pour essayer Pyston, il suffit d'installer le paquet, de remplacer “python3” par “pyston3” et de réinstaller vos dépendances en utilisant la commande “pip-pyston3 install”. Si vous avez déjà une installation automatique, le changement devrait être juste quelques lignes.
Enfin, notons que Dropbox n'est plus impliqué dans le développement de Pyston, mais cette nouvelle version arrive après que certains des développeurs originaux aient formé une nouvelle société plus tôt cette année pour être le fer de lance de l'évolution de Pyston. L’équipe a l'intention d'ouvrir le code à l'avenir, mais comme les projets de compilation sont coûteux et qu’elle n’a plus de parrainage d'entreprise bénévole, le code est actuellement fermé pendant qu’elle met au point son modèle commercial.
Source : Pyston v2
Et vous ?
Qu'en pensez-vous ?
Voir aussi
Python 3.8.0 est publié avec la prise en charge des expressions d'affectation (l'opérateur de morse « := ») et les paramètres de position uniquement
Django 3.1 est disponible, compatible avec Python 3.6, 3.7 et 3.8 et introduit JSONField pour tous les backends de base de données supportés
PyCharm : la version 2019.2 de l'EDI Python disponible, avec une amélioration de l'expérience Jupyter Notebook et un support initial de Python 3.8
L'EDI Python PyCharm 2020.1 est disponible et apporte des améliorations au contrôle de version Git, une installation Python plus fluide sur Windows et bien d'autres améliorations