Pourquoi Python est-il inefficace ?

(*-*)浩
Libérer: 2019-05-30 13:05:58
original
4221 Les gens l'ont consulté

Python est un langage de programmation élégant. Aujourd'hui, avec le développement rapide de l'intelligence artificielle, du cloud computing et du big data, Python a attiré l'attention de tous les horizons, notamment Alibaba, Sohu, Zhihu, Tencent, NetEase, Tudou. , De Sina aux pays étrangers, Google, Dropbox, Facebook, Redhat, Uber, etc. utilisent tous Python à grande échelle pour accomplir diverses tâches !

Pourquoi Python est-il inefficace ?

Python est de plus en plus populaire et présente de nombreux avantages, mais Python présente également un inconvénient majeur. Par rapport au langage C,

Python. fonctionne de manière inefficace, alors quelle en est la raison ?

1. Python est un langage dynamique

Un langage dynamique est un type de langage qui peut changer sa structure au moment de l'exécution, comme de nouvelles fonctions, objets , des codes peuvent être introduits, des fonctions existantes peuvent être supprimées ou d'autres changements structurels, etc. Ce type de langage est plus vivant, mais il est inévitable que l'incertitude du temps d'exécution affecte également l'efficacité opérationnelle.

2. Python est une exécution interprétée

Comparé aux programmes écrits en langage compilé C, Python est un langage d'exécution interprété et son processus d'exécution est le fichier d'exécution Python. programme , l'interpréteur Python convertit le code source en bytecode, puis l'interpréteur Python exécute ces bytecodes. Chaque fois qu'il est exécuté, il doit être converti en bytecode, puis une machine virtuelle convertit le bytecode en langage machine avant de pouvoir être exécuté sur le matériel. Par rapport aux langages compilés, le processus est plus compliqué et les performances seront certainement affectées. . Influence.

3. Tout en Python est un objet

Python est un langage de programmation orienté objet Son concept de conception est que tout est un objet, comme les nombres et les chaînes. . Les tuples, listes, dictionnaires, fonctions, méthodes, classes, modules, etc. sont tous des objets, y compris le code. Chaque objet doit conserver un nombre de références. Par conséquent, du travail supplémentaire est ajouté et les performances sont affectées.

4. Python GIL

GIL est le point le plus critiqué de Python. En raison de GIL, le multithreading en Python ne peut pas être vraiment simultané. , GIL Cela aura également un impact important sur les performances, car Python essaiera de changer de thread à chaque fois qu'il exécute 100 opcodes, affectant ainsi l'efficacité opérationnelle de Python.

5. Garbage collection

Python adopte une stratégie de garbage collection marquée et générationnelle. Chaque fois que le garbage collection se produit, le programme en cours d'exécution sera interrompu, provoquant ce que l'on appelle des pauses. .carte, affectant l’efficacité opérationnelle.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal