Est Python plus rapide et plus léger que le C++?
J'ai toujours pensé que le Python avantages sont code lisibilité et la vitesse de développement, mais le temps et l'utilisation de la mémoire ne sont pas aussi bonnes que celles de C++.
Ces stats m'a frappé vraiment fort.
Qu'est-ce que votre expérience vous parler de Python vs C++ du temps et de l'utilisation de la mémoire?
- Donc Pyhton est pour la plupart de ces cas, plus lent et utilise plus de RAM, mais la source est plus petite. Quel est le problème exactement?
- Je suppose que j'ai mal interprété les résultats.
- Ce qui est vraiment intéressant, c'est que le C++ tests sont encore "mieux" que le C ceux!
- Intéressant, ils ont fait des résultats un peu moins intuitif. Btw python pidigits résultat est impressionnant (les modules sont la grande chose).
- Ne m'étonne pas. C++ a ajouté beaucoup de fonctionnalité permettant potentiellement plus rapide du code. Si vous savez ce que vous faites, C++ peut être ridiculement efficace, plus que C. (bien sûr, C++ comprend également quelques fonctionnalités que nuire à la performance, mais vous n'avez pas à les utiliser). Mais la croyance commune que "C est plus rapide que le C++" est erroné. (et la question n'est pas très significatif en premier lieu)
- ils ont fait des résultats un peu moins intuitif." - De gens ont mal interprété la précédente présentation des résultats, c'est pourquoi elle a changé. Maintenant, plus signifie plus grand - plus de temps, plus de mémoire, plus de code source.
- Il semble plutôt facile de mal interpréter si vous n'avez pas lu le titre et les valeurs sur l'axe des ordonnées. Peut certainement être améliorée. 🙂
- Si c'est si bien défini, alors pourquoi n'avez-vous pas fait une suggestion? 🙂
Vous devez vous connecter pour publier un commentaire.
Je pense que vous êtes la lecture de ces statistiques de manière incorrecte. Ils montrent que Python est à environ 400 fois plus lent que C++ et à l'exception d'un seul cas, le Python est plus d'un dévoreur de mémoire. Quand il s'agit de la source de taille, mais, Python gagne à plat.
Mes expériences avec Python montrent la même tendance définie que Python est de l'ordre de 10 à 100 fois plus lent que le C++ au moment d'une grave calculs. Il y a beaucoup de raisons pour cela, les principaux étant: a) Python est interprété, tandis que le C++ est compilé; b) le Python n'a pas de primitives, tout, y compris la builtin types (int, float, etc.) sont des objets; c) une liste Python peut contenir des objets de type différent, de sorte que chaque inscription doit stocker des données supplémentaires au sujet de son type. Tous ces nuire sérieusement à la fois de l'exécution et de consommation de mémoire.
Ce n'est pas une raison pour ignorer Python bien. Beaucoup de logiciels ne nécessite pas beaucoup de temps ou de mémoire, même avec le temps 100 facteur de lenteur. Le coût de développement est où Python gagne avec le simple et le style concis. Cette amélioration sur le coût de développement est souvent plus importante que le coût supplémentaire de ressources processeur et mémoire. Quand il n'est pas, cependant, C++ gagne.
numpy
etscipy
, un grandpython
le code de base est susceptible d'avoir beaucoup de code en pur python, de rendre les choses plus lentement queC++
. un script python à l'approche de la vitesse d'unC++
script en tant que pourcentage de saC
code va à100
, à quel point il n'est plus un script python. python est en train de décoller, pour sûr, mais pas parce qu'il est aussi rapide queC++
-- parce que c'est plus facile à utiliser.Tous la plus lente (>100) les usages de Python sur la fusillade de la scientifique sont des opérations qui nécessitent un haut GFlop/s le comte. Vous ne devez PAS utiliser python pour ceux de toute façon. La façon correcte d'utiliser python est l'importation d'un module qui fait ces calculs, et puis allez avoir un après-midi de détente avec votre famille. Que est le pythonic façon 🙂
Mon expérience est la même que les critères de référence. Python peut être lent et utilise plus de mémoire. J'écris beaucoup, beaucoup moins de code et il fonctionne de la première fois avec beaucoup moins de débogage. Depuis, il gère la mémoire pour moi, je n'ai pas à faire toute la gestion de la mémoire, d'économiser des heures de chasser les fuites de base.
Quelle est votre question?
Source la taille n'est pas vraiment une chose sensée à mesure. Par exemple, le script suivant:
est beaucoup plus courte que soit son Python ou C++ équivalents.
cat footer
.Aussi: Psyco vs C++.
C'est toujours une mauvaise comparaison, puisque personne ne ferait le numbercrunchy trucs repères ont tendance à se concentrer sur en pur Python, de toute façon. Une meilleure serait de comparer le rendement de des applications réalistes, ou C++ contre NumPy, pour avoir une idée de savoir si votre programme sera beaucoup plus lent.
Le problème ici est que vous avez deux langues différentes qui permettent de résoudre deux problèmes différents... c'est comme comparer le C++ et assembleur.
Python est pour le développement rapide d'applications et pour quand la performance est un peu préoccupants.
C++ est pas pour le développement rapide d'applications et hérite d'un héritage de la vitesse de C - pour la programmation de bas niveau.
Je pense que ces statistiques montrent que Python est beaucoup plus lente et utilise plus de mémoire pour ces données de référence - êtes-vous sûr que vous êtes en train de lire le droit chemin jusqu'à?
Dans mon expérience, qui est la plupart du temps à l'écriture de réseau et de système de fichiers-programmes lié à Python, Python n'est pas significativement plus lente en aucune façon que les questions. Pour ce genre de travail, ses avantages l'emportent sur ses coûts.
C'est le même problème avec la gestion et facile à utiliser le langage de programmation comme toujours - qu'ils sont lents (et parfois de la mémoire-manger).
Ces langues à faire le contrôle plutôt que le traitement. Si je devais écrire une application pour transformer les images et a dû utiliser Python aussi tout le traitement pourrait être écrit en C++ et connecté pour Python via des liaisons tandis que l'interface de contrôle des processus et serait définitivement Python.