introduction
Un Pycon 2021, le créateur du langage Python, Sir Guido Van Rossum a élaboré ses plans à long et à court terme sur la façon de rendre les futures versions de Python plus rapides et il envisage de le faire deux fois plus vite qu'il ne l'est actuellement.. PyPy et CPython sont quelques-uns des exemples existants qui tentent d'augmenter la vitesse d'exécution de Python, mais vous pouvez aussi le faire vous-même si vous suivez simplement quelques trucs et astuces pour améliorer vos compétences en codage afin d'écrire un code efficace et de ne pas perdre de mémoire ou de temps CPU.

Ensuite, Pourquoi choisir Python?
Python est devenu l'un des langages les plus acceptés car il est facile à programmer et très pratique à utiliser.. La vitesse n'a jamais été un des points forts de Python, mais cela ne signifie pas que vous devez toujours donner des résultats inefficaces. En python, les gens préfèrent « Vitesse de développement » sur le « Vitesse d'exécution". Peut ne pas avoir les performances brutes de C ou Java, mais vous serez surpris de la vitesse à laquelle une application Python correctement optimisée peut s'exécuter. Cette vitesse est suffisante pour alimenter diverses applications telles que l'analyse de données, outils d'automatisation, administratif et bien d'autres. Si vous suivez certains conseils et procédures de codage standard, vous pourriez presque oublier que vous échangez les performances de l'application contre la productivité des développeurs en premier lieu.
1. Profils de codes

En réalité, vous devez mesurer votre code en dehors de votre environnement de test ou UAT et directement dans l'environnement de production ou en direct pour savoir exactement pourquoi ou où votre code s'exécute plus lentement. C'est là qu'intervient le profilage et vous pouvez utiliser le logiciel intégré de Python « Profil C » module pour inspecter votre code pour les parties qui peuvent réduire les performances de votre code général.
Si vous avez besoin d'une plus grande précision, vous pouvez utiliser n'importe quel autre profileur puissant qui vous fournira une analyse approfondie, mais dans de nombreux cas, un simple profileur peut faire beaucoup pour retrouver la fonction ou la ligne de code coupable qui cause un goulot d'étranglement. en exécution. Vous serez en mesure d'identifier et de tester avec précision avec une base de référence pour établir des modèles anormaux ou des temps d'exécution dans divers scénarios de déploiement et vous pouvez essayer de deviner prématurément, mais cela peut ne pas conduire à beaucoup de succès et, donc, vous devriez toujours utiliser un profileur pour décomposer votre code efficacement.
2. Mémorisation

La mémorisation est un processus dans lequel le même travail n'est pas répété indéfiniment, même s'il s'agit d'une fonction dont la valeur a déjà été calculée précédemment. Python vous offre l'option d'un cache qui vous permettra d'obtenir instantanément des résultats à partir de fonctions précédemment calculées. Ces fonctionnalités Python spéciales sont appelées décorateurs et vous pouvez les utiliser dans votre code pour accélérer votre code..
Saisir :
heure d'importation
def fib(m):
si n < 2:
retour m
autre:
retour fib(n-1) + mensonge(n-2)
t1 = timeit.Timer("mensonge(40)", "de __main__ import fib")
imprimer(t1.timeit(1))
Départ: (sur ma machine locale)
47.392615799999994
Ajoutez les deux lignes de code suivantes:
à partir de functools importer lru_cache @lru_cache(taille max=100)
Départ: (sur ma machine locale)
5.8000000000002494e-05
Choquant, ce n'est pas comme ça? C'est la puissance de LRU_Cache dans la bibliothèque de fonctions. Vous pouvez définir une valeur personnalisée pour le cache LRU ou la définir sur ‘Rien’ pour tout ranger. Utilisé pour stocker des valeurs qui se répètent fréquemment dans une période de temps stipulée. Par exemple, peut-être les éléments les plus récemment récupérés au cours de la dernière 24 heures ou une valeur qui sera appelée plusieurs fois au cours de la prochaine 24 Heures.
3. Utilisez Numpy pour toutes les opérations mathématiques

NumPy est célèbre pour ses opérations mathématiques basées sur des matrices ou tout type de matrice, mais l'ingrédient secret ici est qu'il stocke les données numériques plus efficacement que les structures de données intégrées de Python. Le paquet a de nombreux remplacements pour les opérations mathématiques traditionnelles et, puisqu'il utilise les bibliothèques C, c'est beaucoup plus rapide que les fonctions python générales. NumPy gère également efficacement votre mémoire pour les très grandes structures de données, comme des listes avec un million d'articles.
Numpy peut optimiser et économiser jusqu'à 75% plus d'espace que les listes Python normales. NumPy Array est la seule chose proche des tableaux comme en Java ou C et facile à déclarer et à utiliser et, donc, adhère à l'engagement initial de « Vitesse de développement ».
4. Utilisez toujours une bibliothèque C dans la mesure du possible

Comme tu l'as déjà vu, l'utilisation de NumPy en conjonction avec les bibliothèques C et sa puissance. Un concept similaire peut également être appliqué à d'autres bibliothèques et fonctions. Les bibliothèques Python ne sont pas aussi efficaces que Cones et, donc, si vous avez la possibilité ou la possibilité d'utiliser une bibliothèque C, choisissez toujours la bibliothèque C. Ils sont plus rapides et plus efficaces que leurs bibliothèques Python respectives. Python Ctypes Library est un excellent exemple compatible avec le runtime Python et tire parti des avantages de C.
Vous obtiendrez les meilleurs résultats en réduisant le nombre de trajets de C vers Python, puisque passer des données entre eux est une opération coûteuse. Par exemple, Considérez deux scénarios dans lesquels vous transmettez une valeur à la fois dans une boucle à C à partir de Python, le calcul et le retour et, dans un autre cas, passer une liste à C, effectuez votre calcul là-bas et renvoyez le résultat. Choisissez toujours la deuxième option, car il est beaucoup plus rapide et plus efficace dans cette méthode.
5. Connaître votre bibliothèque et ses fonctions

Il est très facile d'inclure toutes les bibliothèques que vous connaissez dans un code et vous n'aurez jamais à vous soucier d'importer autre chose que dans la pratique, c'est l'une des pires façons de coder. C'est analogue à commander trop de nourriture que vous ne pouvez habituellement gérer et, à la fin, vous vous sentirez fatigué et difficile à terminer. Alors que Python peut être un langage puissant, ce n'est pas une excuse pour accumuler toutes les bibliothèques existantes juste pour éviter les erreurs. En échange, vous corrompre votre propre code si vous importez plus que les bibliothèques requises dans votre code python. Gardez toujours à l'esprit les fonctions dont vous avez besoin et les bibliothèques supplémentaires. Supprimez la ligne ou commentez-les pour supprimer cette surcharge et votre code s'exécutera plus rapidement.
Remarques finales
Vous connaissez maintenant quelques trucs et astuces pour rendre votre code plus rapide et plus efficace en utilisant quelques techniques simples et si vous avez d'autres questions, n'hésitez pas à me contacter au LinkedIn ou si vous aimez le mouvement brownien géométrique et la bourse, vous pouvez voir un autre de mes articles ici. Restez en sécurité et passez une bonne journée.
Les médias présentés dans cet article sur 5 Les trucs et astuces pour accélérer vos programmes Python ne sont pas la propriété de DataPeaker et sont utilisés à la discrétion de l'auteur.



