Maison  >  Article  >  développement back-end  >  Les performances de Python 3.11 se sont améliorées de près de 64 % !

Les performances de Python 3.11 se sont améliorées de près de 64 % !

王林
王林avant
2023-04-24 12:46:071278parcourir

Les performances de Python 3.11 se sont améliorées de près de 64 % !

Ce n’est un secret pour personne, Python n’est pas un langage de programmation rapide. De nombreux développeurs attendent avec impatience des améliorations dans les performances de ce langage. Cette situation est peut-être sur le point de changer, ou du moins d'évoluer dans la bonne direction. C'est aussi l'un des résultats de la prise de décision du fondateur de Python après son retour. travail.

Le 7 mai, l'équipe Python a publié la dernière version de Python - Python 3.11. Ce qui est actuellement publié est une version bêta (Beta1) que les développeurs peuvent utiliser à des fins de tests ou d'expérimentation.

Les performances de Python 3.11 se sont améliorées de près de 64 % !

Selon la réglementation fixée par l'équipe de développement, la version officielle devrait sortir en octobre 2022.

Un internaute curieux l'a testé sur sa propre machine virtuelle. Il a installé Python 3.10 et 3.11 dans des conteneurs Docker séparés et a examiné leur comparaison dans un ensemble de tests de référence.

Le package pyperformance est utilisé pour effectuer ce travail. Ce package aidera les développeurs à effectuer le gros travail de tests de référence.

Données récapitulatives, calculées en moyenne, Python 3.11 est 14% plus rapide que Python 3.10. La nouvelle version 3.11 est légèrement plus lente sur certains benchmarks, mais est 64 % plus rapide sur la plupart des benchmarks.

Voici des tests de référence exécutés sur un MacBook Pro 16 M1 Pro doté d'un processeur à 10 cœurs. Chaque version de Python est installée dans Docker, qui utilise 5 cœurs de processeur logiques.

Voici les données d'exécution des différents packages :

Les performances de Python 3.11 se sont améliorées de près de 64 % !

À l'heure actuelle, la version officielle de Python 3.11 n'a pas été officiellement publiée. Nous devons attendre une version complètement stable. Actuellement, nous ne faisons que tester. une version candidate. Peut-être qu'après la sortie de la version officielle, l'écart entre les deux sera encore plus grand.

Rapports associés : 25 % plus rapide ! CPython 3.11 arrive

Écrit par Luo Qiqi, produit par | OSC Open Source Community (ID : oschina2013)

Après avoir pris sa retraite et être revenu rejoindre l'équipe Faster CPython de Microsoft, Guido van Rossum, le père de Python, a pris la parole à lors du Python Language Summit 2021, il a prononcé des mots durs, affirmant que l'équipe atteindrait au moins 1 fois la vitesse dans la version Python 3.11.

Les performances de Python 3.11 se sont améliorées de près de 64 % !

Lors du Python Language Summit de cette année, Guido et son partenaire Mark Shannon ont signalé les derniers progrès : par rapport à la version 3.10, l'accélération de CPython 3.11 est comprise entre 10 et 60 %, et la vitesse spécifique dépend de la taille du code. et Domaine de travail et autres conditions. CPython 3.11 est en moyenne 25 % plus rapide que CPython 3.10 lorsqu'il est compilé avec GCC sur Ubuntu Linux, comme mesuré à l'aide de la suite de benchmarks pyperformance.

Les performances de Python 3.11 se sont améliorées de près de 64 % !

Les améliorations de performances de CPython 3.11 se concentrent principalement sur un démarrage et une exécution plus rapides. La plupart de ces optimisations proviennent du PEP 659 : son idée de fonctionnement est quelque peu similaire à JIT, qui sont tous deux reconnus. code, mais l'interpréteur adaptatif ne peut pas fonctionner en dehors du bytecode. Le travail sur la proposition PEP 659 est presque terminé, mais l'optimisation dynamique des boucles for et des opérations binaires doit encore être achevée.

Bien qu'accélérant de 25 %, Python 3.11 a encore quelques points à améliorer. Par exemple, la consommation de mémoire de Python en 3.11 est fondamentalement la même que celle de la 3.10.

De plus, il faut prêter attention à la problématique des extensions C : la simplicité de l’interface de CPython avec C est le principal avantage, mais l’incompatibilité avec les extensions C est un inconvénient majeur. Le travail d'optimisation effectué par l'équipe Faster CPython dans CPython 3.11 a largement ignoré la question des modules d'extension. À cet égard, le chef d'équipe Shannon a déclaré que l'équipe explorait la possibilité d'exposer des API de fonctions de bas niveau aux machines virtuelles pour réduire le code Python. et du code C autant que possible.

En ce qui concerne le très attendu compilateur JIT, Shannon a déclaré que la première étape pour implémenter JIT est d'implémenter un interpréteur de traçage, mais il y a encore trop de projets qui nécessitent une attention particulière, et l'introduction du compilateur JIT a encore du chemin à parcourir. pour y aller, "Il n'arrivera peut-être pas avant 15h13 au plus tôt." (D'ailleurs, Shannon a toujours été sceptique quant à la nécessité pour CPython d'introduire JIT.)

Fait intéressant, hier, nous avons rendu compte de la nouvelle proposition du développeur Sam Gross : supprimer complètement l'interprétation GIL-globale du verrouillage de l'interpréteur CPython. Cette proposition et le travail de l'équipe Faster CPython accéléreront le code Python multithread de manières complètement différentes, mais les deux peuvent être quelque peu contradictoires. Après tout, une grande partie des optimisations mises en œuvre par Faster CPython sont basées sur le principe selon lequel. le GIL existe toujours.

Remarque : lors de la réunion de sprint des principaux développeurs de l'année dernière, les développeurs principaux ont mené une discussion approfondie sur le projet nogil avec Sam Gross et ont répondu à de nombreuses questions qui préoccupaient davantage tout le monde. Pour des procès-verbaux de réunion spécifiques, veuillez consulter cet article - Séminaire officiel Python : est-il vraiment possible de supprimer complètement le GIL ?

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer