Cet article fournira certains outils pour optimiser le code. Rendra le code plus compact ou plus rapide.
Bien sûr, ces choses ne peuvent pas remplacer d'algorithmes, mais il peut toujours faire accélérer Python plusieurs fois.
Cet article optimise principalement le code du processeur unique et ci-dessous introduira un certain nombre d'implémentations fonctionnelles très efficaces et dispose d'un module d'extension hautement emballée, mais il s'agit également d'un interprète python plus rapide.
Bien entendu, les versions multi-processeurs peuvent réellement augmenter les performances significatives. Si vous souhaitez connaître plusieurs programmes de noyaux, vous pouvez commencer à partir de modules multi-processeurs. Et vous pouvez également trouver beaucoup d'outils tiers sur les calculs de dispersion. Ici, vous pouvez voir le contenu de traitement parallèle sur le wiki Python.
Ensuite, certains menus sur l'outil d'accélération Python seront dites.
1. Numby, Sciped, Sage et Pandas
Premièrement, numpy. Son noyau est un planQui est un tableau de numéros multidimensionnels. Outre cette structure de données, certaines fonctions et opérateurs ont également atteint l'efficacité des opérations de réseau. Et il est raisonnablement arrangé pour le nombre de fois appelé. Il peut être utilisé pour effectuer des activités mathématiques extrêmement efficaces.
Scipy et Sage sont intégrés en une partie de leurs propres outils intégrés et d'autres outils intégrés différents, qui peuvent être utilisés pour des modules scientifiques et mathématiques spécifiques et de hautes performances.
Pandas est un outil qui se concentre sur l'analyse des données. Si vous gérez une variété de données structurées, vous pouvez également utiliser des outils liés à Panda, tels que Blaze.
IIPYPY, PSYCO, PAROTEAUT, PSYCO ET ALLALTÉS ALLÉDÉES
Le code a été exécuté plus rapidement, le plus petit invasif a été utilisé pendant la traduction du temps limite (JIT compilé ). Dans le passé, nous pouvons installer directement Psyco. Entrez PSYCO après l'installation, puis appelez psyco.ful (). Les codes de roulement peuvent être améliorés de pierresDit ng. Lors du fonctionnement du code Python, il peut suivre le programme en temps réel et compiler une pièce de code pour le code de la machine. Aujourd'hui, beaucoup de psycos comme Psyco ont cessé de maintenir la maintenance, mais les mêmes fonctions ont été génétiquement dans Pypy.
PYPY pour faciliter l'analyse, l'optimisation et la traduction, utiliser la langue Python pour reconnaître à nouveau Python, afin que vous puissiez compiler JIT. Et Pypy peut traduire directement le code en une performance plus élevée, comme C.
Ulloaden Swallow est le compilateur Python Jit. C'est une version d'interprète Python, appelée machine virtuelle ci-dessous (LLVM). Cependant, ce développement s'est arrêté.
PYSTON est le compilateur JIT de Python près de la plate-forme LLVM. Plusieurs fois ont dépassé le déploiement de Python, mais il y a encore plus d'endroits imparfaits.
Trois .gpulib, Pystream, Pycuda et Pyopencl
Ces quatre choses sont utilisées dans le processeur d'image pour effectuer l'accélération du code. Préventivement être accéléré par optimalCode. Ils sont accélérés du niveau matériel. Si nous avons un puissant GPU, nous pouvons utiliser le GPU pour calculer, réduisant ainsi les ressources précieuses de la CPU.
PYSTREAM est ancien. GPULIB fournit de nombreuses formes de données différentes basées sur les GPU.
Si vous accélérez votre code avec un GPU, vous pouvez utiliser Pycuda et Pyopencl.
quatre. PYREX, CYTHON, NUMBA et SANDTERKIN
Ces quatre projets s'engagent à traduire le code Python en C, C ++ et LLVM. Sheedkin compilera le code dans la langue C ++. L'objectif principal de Pyrex, Cython est la langue C. Cyron est également une branche de Pyrex.
En outre, Cython dispose également d'un support supplémentaire pour les tableaux numpus.
Si les calculs de matrices et de mathématiques, Numba est une meilleure option pour générer automatiquement le code LLVM correspondant. La version mise à niveau est Numbapro, mais fournit également un support pour les GPU.
ans. Swig, F2py et Boost.python
Ces outils peuvent emballer d'autres languesModules Python. Premier peut emballer la langue C / C ++. F2py peut emballer Fortran. Boost.python peut emballer la langue C ++.
SUIG Il suffit de démarrer un outil de ligne de commande, entrez le fichier d'en-tête C ou C ++ à l'intérieur et le code de paquets sera créé automatiquement. En plus de Python, il peut s'agir d'une enveloppe dans d'autres langues, telles que Java et PHP.
six. TITRIT
Ces modules peuvent nous aider à effectuer le fonctionnement de l'objet de sous-couche Python. Les modules CTTYPES peuvent être utilisés pour construire des objets de traduction C dans la mémoire. Et appelez la fonction dans la bibliothèque partagée. Cependant, les CTYPES ont été inclus dans la bibliothèque standard de Python.
LLVM-PY fournit principalement une interface Python de LLVM. Construire le code, puis les compiler. Son compilateur peut également être construit en python. Bien sûr, vous pouvez créer votre propre langage de programmation.
Corpy2 peut également être accéléré, mais cette accélération est CHCourir dans la classe d'assemblage.
Sept .weaver, Cinpy et PyinlineCes trois packages nous permettent d'utiliser le langage C directement en python ou à une autre langue haut de gamme. Le code mixte peut toujours être maintenu propre. Vous pouvez utiliser les caractéristiques multilignes de la chaîne de code Python, vous pouvez créer un autre code pour saisir votre propre style.
huit. Autres outils
Si nous enregistrons la mémoire, vous ne pouvez pas utiliser JIT. Général Jit est trop de mémoire. Il y a un dicton que l'heure, le temps et la mémoire sont souvent incapables de fonctionner et nous recherchons toujours leurs points d'équilibre dans le développement technique.
Pour d'autres choses, telles que les projets de micro-python, il est utilisé dans des dispositifs intégrés ou microcontrôleurs.Si vous voulez simplement travailler dans l'environnement Python, vous pouvez voir ce projet Julia.