Il est dit que c++ est plus performant que python.
Cela reste relatif. Voici un exemple:
s = ""
for x in range(100000):
s = s + "jbb"
et le même en C++
std::string s = ""
for (x = 0;x < 100000;x++):
s = s + "jbb"
si vous faites le test vous verez que le python est bien plus performant !! ( au moins 10 fois plus rapide)
Mais comment cela se fait il?
En fait un codeur C++ un peu plus experimenté écrirait:
std::string s = ""
for (x = 0;x < 100000;x++):
s += "jbb" //subtile difference
et la du coup C++ reprend l'avantage ( facteur 2 chez moi)
mais un codeur python plus experimenté pourrait écrire:
s = "jbb"*100000
Bref, tout est relatif, et si vous n'êtes pas un expert C++ (ni python) il n'est pas impossible
que votre code python soit plus performant que si vous l'écriviez en C++...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Rakotomandimby (R12y) Mihamina
JBB - <f6bb52$lt3$ :
Bref, tout est relatif, et si vous n'êtes pas un expert C++ (ni python) il n'est pas impossible que votre code python soit plus performant que si vous l'écriviez en C++...
Et si on est expert des deux?
-- "C'est très facile d'avoir des idées de partage quand on n'a rien." Patrice KARATCHENTZEFF
JBB - <f6bb52$lt3$1@aioe.org> :
Bref, tout est relatif, et si vous n'êtes pas un expert C++ (ni python)
il n'est pas impossible que votre code python soit plus performant que si
vous l'écriviez en C++...
Et si on est expert des deux?
--
"C'est très facile d'avoir des idées de partage quand on n'a rien."
Patrice KARATCHENTZEFF
Bref, tout est relatif, et si vous n'êtes pas un expert C++ (ni python) il n'est pas impossible que votre code python soit plus performant que si vous l'écriviez en C++...
Et si on est expert des deux?
-- "C'est très facile d'avoir des idées de partage quand on n'a rien." Patrice KARATCHENTZEFF
MC
Bonsoir !
Mais, moi, je pense qu'il faut comparer ce qui est comparable.
Par exemple, ce code Python :
v=raw_input("valeur :") t=0 for i in xrange(100000): t+=eval(v) print t
Et on entre qq. chose comme : +54321*31415*100*555*666*777*888*999-1
Et, vous noterez les avantages concédés à C++ : entiers très longs (mais on peut mettre des flottants), exécution dynamique du calcul, ...
PS : perso, je ne sais pas écrire le code C équivalent.
-- @-salutations
Michel Claveau
Bonsoir !
Mais, moi, je pense qu'il faut comparer ce qui est comparable.
Par exemple, ce code Python :
v=raw_input("valeur :")
t=0
for i in xrange(100000):
t+=eval(v)
print t
Et on entre qq. chose comme : +54321*31415*100*555*666*777*888*999-1
Et, vous noterez les avantages concédés à C++ : entiers très longs
(mais on peut mettre des flottants), exécution dynamique du calcul, ...
PS : perso, je ne sais pas écrire le code C équivalent.
PS : perso, je ne sais pas écrire le code C équivalent.
Moi si. Mais j'ai pas envie :P
Nicolas
Blaise Li
JBB wrote in message <f6bb52$lt3$:
std::string s = "" for (x = 0;x < 100000;x++): s = s + "jbb"
[...]
En fait un codeur C++ un peu plus experimenté écrirait: std::string s = "" for (x = 0;x < 100000;x++): s += "jbb" //subtile difference et la du coup C++ reprend l'avantage ( facteur 2 chez moi)
Il n'y a pas une phase de compilation intelligente qui fait que les deux façons de coder aussi peu différentes devraient aboutir au même exécutable en fin de compte ? Et si non, d'où vient la différence ?
bli
JBB wrote in message <f6bb52$lt3$1@aioe.org>:
std::string s = ""
for (x = 0;x < 100000;x++):
s = s + "jbb"
[...]
En fait un codeur C++ un peu plus experimenté écrirait:
std::string s = ""
for (x = 0;x < 100000;x++):
s += "jbb" //subtile difference
et la du coup C++ reprend l'avantage ( facteur 2 chez moi)
Il n'y a pas une phase de compilation intelligente qui fait que les deux
façons de coder aussi peu différentes devraient aboutir au même
exécutable en fin de compte ? Et si non, d'où vient la différence ?
std::string s = "" for (x = 0;x < 100000;x++): s = s + "jbb"
[...]
En fait un codeur C++ un peu plus experimenté écrirait: std::string s = "" for (x = 0;x < 100000;x++): s += "jbb" //subtile difference et la du coup C++ reprend l'avantage ( facteur 2 chez moi)
Il n'y a pas une phase de compilation intelligente qui fait que les deux façons de coder aussi peu différentes devraient aboutir au même exécutable en fin de compte ? Et si non, d'où vient la différence ?
bli
Jan Vorwerk
Blaise Li a écrit , le 05.07.2007 19:35:
JBB wrote in message <f6bb52$lt3$:
std::string s = "" for (x = 0;x < 100000;x++): s = s + "jbb"
[...]
En fait un codeur C++ un peu plus experimenté écrirait: std::string s = "" for (x = 0;x < 100000;x++): s += "jbb" //subtile difference et la du coup C++ reprend l'avantage ( facteur 2 chez moi)
Il n'y a pas une phase de compilation intelligente qui fait que les deux façons de coder aussi peu différentes devraient aboutir au même exécutable en fin de compte ? Et si non, d'où vient la différence ?
bli
Normalement, un compilo' moyen devrait générer le même code.
Il serait intéressant de voir avec quel compilo' on observe de telles différences (facteur 2!!) et le réserver à des applications non critiques. Au boulot, j'utilise (contre mon gré) M$ Visual Studio.NET (la première version) et le code généré n'est vraiment pas brillant.
A++
Blaise Li a écrit , le 05.07.2007 19:35:
JBB wrote in message <f6bb52$lt3$1@aioe.org>:
std::string s = ""
for (x = 0;x < 100000;x++):
s = s + "jbb"
[...]
En fait un codeur C++ un peu plus experimenté écrirait:
std::string s = ""
for (x = 0;x < 100000;x++):
s += "jbb" //subtile difference
et la du coup C++ reprend l'avantage ( facteur 2 chez moi)
Il n'y a pas une phase de compilation intelligente qui fait que les deux
façons de coder aussi peu différentes devraient aboutir au même
exécutable en fin de compte ? Et si non, d'où vient la différence ?
bli
Normalement, un compilo' moyen devrait générer le même code.
Il serait intéressant de voir avec quel compilo' on observe de telles
différences (facteur 2!!) et le réserver à des applications non critiques.
Au boulot, j'utilise (contre mon gré) M$ Visual Studio.NET (la première
version) et le code généré n'est vraiment pas brillant.
std::string s = "" for (x = 0;x < 100000;x++): s = s + "jbb"
[...]
En fait un codeur C++ un peu plus experimenté écrirait: std::string s = "" for (x = 0;x < 100000;x++): s += "jbb" //subtile difference et la du coup C++ reprend l'avantage ( facteur 2 chez moi)
Il n'y a pas une phase de compilation intelligente qui fait que les deux façons de coder aussi peu différentes devraient aboutir au même exécutable en fin de compte ? Et si non, d'où vient la différence ?
bli
Normalement, un compilo' moyen devrait générer le même code.
Il serait intéressant de voir avec quel compilo' on observe de telles différences (facteur 2!!) et le réserver à des applications non critiques. Au boulot, j'utilise (contre mon gré) M$ Visual Studio.NET (la première version) et le code généré n'est vraiment pas brillant.
A++
hg
JBB wrote:
Il est dit que c++ est plus performant que python. Cela reste relatif. Voici un exemple:
s = "" for x in range(100000): s = s + "jbb"
et le même en C++
std::string s = "" for (x = 0;x < 100000;x++): s = s + "jbb"
si vous faites le test vous verez que le python est bien plus performant !! ( au moins 10 fois plus rapide)
Mais comment cela se fait il?
En fait un codeur C++ un peu plus experimenté écrirait: std::string s = "" for (x = 0;x < 100000;x++): s += "jbb" //subtile difference et la du coup C++ reprend l'avantage ( facteur 2 chez moi)
mais un codeur python plus experimenté pourrait écrire: s = "jbb"*100000
Bref, tout est relatif, et si vous n'êtes pas un expert C++ (ni python) il n'est pas impossible que votre code python soit plus performant que si vous l'écriviez en C++...
Une des question est: compilo ou pré-processeur ?
ex: je me souviens du pré-processeur d'ATT (qui donc prenait du C++ et crachait du C immangeable ;-) ) ... on passait le résultat dans un compilo C standard et obtenaient des résultats très impressionnants (ils s'agissaient de cross-compilo pour de l'embarqué)
As-tu passé le mode -Ox ?
hg
JBB wrote:
Il est dit que c++ est plus performant que python.
Cela reste relatif. Voici un exemple:
s = ""
for x in range(100000):
s = s + "jbb"
et le même en C++
std::string s = ""
for (x = 0;x < 100000;x++):
s = s + "jbb"
si vous faites le test vous verez que le python est bien plus performant
!! ( au moins 10 fois plus rapide)
Mais comment cela se fait il?
En fait un codeur C++ un peu plus experimenté écrirait:
std::string s = ""
for (x = 0;x < 100000;x++):
s += "jbb" //subtile difference
et la du coup C++ reprend l'avantage ( facteur 2 chez moi)
mais un codeur python plus experimenté pourrait écrire:
s = "jbb"*100000
Bref, tout est relatif, et si vous n'êtes pas un expert C++ (ni python)
il n'est pas impossible que votre code python soit plus performant que si
vous l'écriviez en C++...
Une des question est: compilo ou pré-processeur ?
ex: je me souviens du pré-processeur d'ATT (qui donc prenait du C++ et
crachait du C immangeable ;-) ) ... on passait le résultat dans un compilo
C standard et obtenaient des résultats très impressionnants (ils
s'agissaient de cross-compilo pour de l'embarqué)
Il est dit que c++ est plus performant que python. Cela reste relatif. Voici un exemple:
s = "" for x in range(100000): s = s + "jbb"
et le même en C++
std::string s = "" for (x = 0;x < 100000;x++): s = s + "jbb"
si vous faites le test vous verez que le python est bien plus performant !! ( au moins 10 fois plus rapide)
Mais comment cela se fait il?
En fait un codeur C++ un peu plus experimenté écrirait: std::string s = "" for (x = 0;x < 100000;x++): s += "jbb" //subtile difference et la du coup C++ reprend l'avantage ( facteur 2 chez moi)
mais un codeur python plus experimenté pourrait écrire: s = "jbb"*100000
Bref, tout est relatif, et si vous n'êtes pas un expert C++ (ni python) il n'est pas impossible que votre code python soit plus performant que si vous l'écriviez en C++...
Une des question est: compilo ou pré-processeur ?
ex: je me souviens du pré-processeur d'ATT (qui donc prenait du C++ et crachait du C immangeable ;-) ) ... on passait le résultat dans un compilo C standard et obtenaient des résultats très impressionnants (ils s'agissaient de cross-compilo pour de l'embarqué)