Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1685 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2  3  4
Auteur Sujet :

De la vitesse des langages...

n°606855
Kristoph
Posté le 10-01-2004 à 00:41:52  profilanswer
 

Reprise du message précédent :

Code :
  1. [kristoph@vvardenfell c++]$ ./bench
  2. Start C benchmark
  3. Int arithmetic elapsed time: 8160 ms
  4. Double arithmetic elapsed time: 6010 ms
  5. arithmetic elapsed time: 20770 ms
  6. Trig elapsed time: 3650 ms
  7. I/O elapsed time: 1090 ms
  8. Total elapsed time: 39680 ms


 
gcc 3.3.1 sur Athlon XP 1800+ avec 256Mo de ram
 

mood
Publicité
Posté le 10-01-2004 à 00:41:52  profilanswer
 

n°606860
verdoux
And I'm still waiting
Posté le 10-01-2004 à 01:12:16  profilanswer
 

os2 a écrit :

pourquoi vb.net c#.net et vc++.net n'obtiennet pas les même résultats?
 
au final ils ont tous le même "bytecode"


Dans le cas du c++, il ne doit pas produire du bytecode j'imagine. Il y a qu'à voir les optimisations qu'il active:

Citation :

Visual C++: used "release" configuration, turned on "whole program optimization," set "optimization" to "maximize speed," turned on "global optimizations," turned on "enable intrinsic functions," set "favor size or speed" to "favor fast code," set "omit frame pointers" to "yes," set "optimize for processor" to "Pentium 4 and above," set "buffer security check" to "no," set "enable enhanced instruction set" to "SIMD2," and set "optimize for Windows98" to "no" within Visual Studio


Ce sont des optimisations de compilation native, pas en bytecode.

n°606893
os2
Posté le 10-01-2004 à 02:43:16  profilanswer
 

pour le code delphi  
 
dans le test des long en faisant
 
longResult := Trunc(longResult/i);
 
au lieu de  
 
longResult := longResult div i;  
 
on obtient: 19 958 ms au lieu de 112 101ms
 
très net différence


---------------
Borland rulez: http://pages.infinit.net/borland
n°607001
Kristoph
Posté le 10-01-2004 à 12:50:33  profilanswer
 

os2 a écrit :

pour le code delphi  
 
dans le test des long en faisant
 
longResult := Trunc(longResult/i);
 
au lieu de  
 
longResult := longResult div i;  
 
on obtient: 19 958 ms au lieu de 112 101ms
 
très net différence


 
Ouais mais la tu triches car tu ne fais plus la même operation. Tu ne fais plus une division sur des entiers 64bits mais sur des flottants et donc tu utilises la fpu est bien plus rapide que le cpu pour les divisions.

n°607046
antp
Super Administrateur
Champion des excuses bidons
Posté le 10-01-2004 à 14:15:12  profilanswer
 

En fin de compte, en C++ ce sont des long 32 ou 64 bits ? parce que si on compare avec les Int64 de Delphi...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°607049
Kristoph
Posté le 10-01-2004 à 14:18:54  profilanswer
 

antp a écrit :

En fin de compte, en C++ ce sont des long 32 ou 64 bits ? parce que si on compare avec les Int64 de Delphi...


 
Si c'était du 32 bit, on obtiendrais les mêmes resultats qu'au premier test. Je ne sais pas si le type (long long) est standard mais à chaque fois que je l'ai utilisé c'était du 64 bit

n°607053
Taz
bisounours-codeur
Posté le 10-01-2004 à 14:21:26  profilanswer
 

long long est C99, pas C++

n°607054
antp
Super Administrateur
Champion des excuses bidons
Posté le 10-01-2004 à 14:22:19  profilanswer
 

Kristoph a écrit :


 
Si c'était du 32 bit, on obtiendrais les mêmes resultats qu'au premier test. Je ne sais pas si le type (long long) est standard mais à chaque fois que je l'ai utilisé c'était du 64 bit


 
ha ouais après avoir relu les différents posts je me rends compte que j'avais lu "long" au lieu de "long long" :o


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°607076
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 10-01-2004 à 15:02:24  profilanswer
 

Kristoph a écrit :

Les conclusions sont foireuses en effet. Java 1.4.2 est bien plus rapide que Java 1.3 sauf sur 1 seul test. Faire la somme des temps de calcul est vraiment une très très mauvaise idée.
 
Les seules conclusions que je tire de tout ça sont :
- Vous voyez bien que Java ce n'est pas si lent que ça
- Du C++ bien optimisé reste plus rapide que du C# sous .Net Pas ettonant quand même.


Merci de ce post, c'est tout à fait ce que je pense :jap:
Effectivement, faire la somme sur un graphe, c'est crétin ; vaut mieux mettre les résultats sur 5 graphes [:spamafote]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°607077
the real m​oins moins
Posté le 10-01-2004 à 15:03:35  profilanswer
 

Taiche a écrit :


Merci de ce post, c'est tout à fait ce que je pense :jap:
Effectivement, faire la somme sur un graphe, c'est crétin ; vaut mieux mettre les résultats sur 5 graphes [:spamafote]

c'est pas crétin, ça permet juste de faire dire ce que l'on veut à des chiffres bidon [:spamafote]

mood
Publicité
Posté le 10-01-2004 à 15:03:35  profilanswer
 

n°607128
ToxicAveng​er
Posté le 10-01-2004 à 16:06:25  profilanswer
 

C# 0uwnz D@ W3uRlD ;p

n°607130
Taz
bisounours-codeur
Posté le 10-01-2004 à 16:06:43  profilanswer
 

ou pas

n°607226
os2
Posté le 10-01-2004 à 18:10:17  profilanswer
 

les test avec kylix 3 (delphi) athlon 1800+ 512mb
 
Start Delphi benchmark
Int arithmetic elapsed time: 8263ms  
Double arithmetic elapsed time: 23113 ms  
Long arithmetic elapsed time: 23182 ms  
Trig elapsed time: 4170 ms  
IO elapsed time: 6297 ms with max of 1000000
Total Delphi benchmark time: 65025 ms
End Delphi benchmark


---------------
Borland rulez: http://pages.infinit.net/borland
n°607229
os2
Posté le 10-01-2004 à 18:13:53  profilanswer
 

Kristoph a écrit :


 
Ouais mais la tu triches car tu ne fais plus la même operation. Tu ne fais plus une division sur des entiers 64bits mais sur des flottants et donc tu utilises la fpu est bien plus rapide que le cpu pour les divisions.


 
en effet, c'est une optimisation mais est-ce vraiment une tricheries lorsqu'on regarde toutes les optimisations qui ont été faites pour le c++.net?


---------------
Borland rulez: http://pages.infinit.net/borland
n°607231
chrisbk
-
Posté le 10-01-2004 à 18:15:55  profilanswer
 

os2 a écrit :


 
en effet, c'est une optimisation mais est-ce vraiment une tricheries lorsqu'on regarde toutes les optimisations qui ont été faites pour le c++.net?


 
Paske toi tu benchs les entier 64 bits en utilisant ds flottants ?
T'es un malin toi

n°607248
os2
Posté le 10-01-2004 à 18:40:56  profilanswer
 

qui me dit que les autres compilo ne le font pas en interne?
 
de plus avec python il semble avoir des problèmes avec les long... car il les calcules en 128bits...


---------------
Borland rulez: http://pages.infinit.net/borland
n°607249
chrisbk
-
Posté le 10-01-2004 à 18:42:12  profilanswer
 

os2 a écrit :

qui me dit que les autres compilo ne le font pas en interne?


 
1/ arrete la fumette
2/ si tu doutes, un coup de disassembly (par ex pour le code de VS)
3/ les resultats ne seraient pas identiques avant/apres optim => optimisation interdite

n°607251
chrisbk
-
Posté le 10-01-2004 à 18:43:21  profilanswer
 

au faitc'est quoi les superbes optims faites pour VC++.net qui te derangent tant ?

n°607252
Taz
bisounours-codeur
Posté le 10-01-2004 à 18:43:25  profilanswer
 

mais en python, y a les int sur 32 bits et les long qui sont infinis. je me tue à vous dire que c'est bancal ce truc. y a qu'a voir le bench python, vu comment c'est écrit, on voit que c'était le premire programme du mec.

n°607254
os2
Posté le 10-01-2004 à 18:45:13  profilanswer
 

il est bien écrit qu'il y a des compilo qui passe de 64bit en 32 bit s'il le peuvent...
 
si c'est pas des optimisations ça...
Java 1.3.1: compiled with javac -g:none -O to exclude debugging information and turn on optimization, ran with java -hotspot to activate the just-in-time compiler within the JVM.
 Java 1.4.2: compiled with javac -g:none to exclude debugging information, ran with java -server to use the slower-starting but faster-running server configuration of the JVM.
 C: compiled with gcc -march=pentium4 -msse2 -mfpmath=sse -O3 -s -mno-cygwin to optimize for my CPU, enable SSE2 extensions for as many math operations as possible, and link to Windows libraries instead of Cygwin libraries.
 Python with and without Psyco: no optimization used. The python -O interpreter flag optimizes Python for fast loading rather than fast performance, so was not used.
 Visual Basic: used "release" configuration, turned on "optimized," turned off "integer overflow checks" within Visual Studio.
 Visual C#: used "release" configuration, turned on "optimize code" within Visual Studio.
 Visual C++: used "release" configuration, turned on "whole program optimization," set "optimization" to "maximize speed," turned on "global optimizations," turned on "enable intrinsic functions," set "favor size or speed" to "favor fast code," set "omit frame pointers" to "yes," set "optimize for processor" to "Pentium 4 and above," set "buffer security check" to "no," set "enable enhanced instruction set" to "SIMD2," and set "optimize for Windows98" to "no" within Visual Studio.
 Visual J#: used "release" configuration, turned on "optimize code," turned off "generate debugging information" within Visual Studio.


---------------
Borland rulez: http://pages.infinit.net/borland
n°607255
chrisbk
-
Posté le 10-01-2004 à 18:47:35  profilanswer
 

Mais ? Désolé de te l'assener comme ca, mais t'es un foutu blaireau ! Quand tu tests le code generé par un compilo, evidemment que tu actives toutes les optims que le compilo autorise, tu voulais quoi ? qu'ils compilent en debug ? Reflechis 2s voyons
 
moi qui pensait qu'il y avait des vieilles magouilles dans le code source special VC.net....

n°607270
os2
Posté le 10-01-2004 à 19:01:24  profilanswer
 

chrisbk a écrit :

Mais ? Désolé de te l'assener comme ca, mais t'es un foutu blaireau ! Quand tu tests le code generé par un compilo, evidemment que tu actives toutes les optims que le compilo autorise, tu voulais quoi ? qu'ils compilent en debug ? Reflechis 2s voyons
 
moi qui pensait qu'il y avait des vieilles magouilles dans le code source special VC.net....
 


 
oui en mode debug  :sarcastic: utilise donc ta cervelle de moineau un peu


---------------
Borland rulez: http://pages.infinit.net/borland
n°607271
os2
Posté le 10-01-2004 à 19:02:13  profilanswer
 

taz a écrit :

mais en python, y a les int sur 32 bits et les long qui sont infinis. je me tue à vous dire que c'est bancal ce truc. y a qu'a voir le bench python, vu comment c'est écrit, on voit que c'était le premire programme du mec.


 
+1
 
d'ailleurs il pleut de message sur le site de bench que ça vaut pas de la merde...


---------------
Borland rulez: http://pages.infinit.net/borland
n°607272
chrisbk
-
Posté le 10-01-2004 à 19:02:47  profilanswer
 

os2 a écrit :


 
oui en mode debug  :sarcastic: utilise donc ta cervelle de moineau un peu


 
vazy, raconte moi tout

n°607330
Kristoph
Posté le 10-01-2004 à 19:40:16  profilanswer
 

Allez, je viens d'essayer la version CVS de gcc ( la 3.4 ) et j'obtiens des resultats encore meilleurs en calcul entier :
7800 ms pour 32bit
17500 ms pour le 64bit
 
Maintenant, je vais peut-être essayer la branche tree-ssa. Il parrait que ça fait de très bonnes optims le ssa :) Entre autre, ça peut produire tout seul du code qui parallelise les calculs


Message édité par Kristoph le 10-01-2004 à 19:40:33
n°607356
os2
Posté le 10-01-2004 à 20:08:03  profilanswer
 

Kristoph a écrit :


 
Ouais mais la tu triches car tu ne fais plus la même operation. Tu ne fais plus une division sur des entiers 64bits mais sur des flottants et donc tu utilises la fpu est bien plus rapide que le cpu pour les divisions.


 
je cite:
 
le bench sert à déterminer qui sera le plus efficace à effectuer une tache, pas le plus efficace à suivre les spécifications qui sont pas les  
siennes.
 
Un bench d'un langage sert à  
tester la rapidité du langage, pas d'une instruction en particulier. Si un langage X propose 2 façons de faire le même calcul, et si l'une est plus rapide, je vois pas pourquoi, à moins d'être maso, il faudrait choisir la plus lente.


---------------
Borland rulez: http://pages.infinit.net/borland
n°607367
os2
Posté le 10-01-2004 à 20:15:54  profilanswer
 

Kristoph a écrit :

Allez, je viens d'essayer la version CVS de gcc ( la 3.4 ) et j'obtiens des resultats encore meilleurs en calcul entier :
7800 ms pour 32bit
17500 ms pour le 64bit
 
Maintenant, je vais peut-être essayer la branche tree-ssa. Il parrait que ça fait de très bonnes optims le ssa :) Entre autre, ça peut produire tout seul du code qui parallelise les calculs


 
très net amélioration, en effet


---------------
Borland rulez: http://pages.infinit.net/borland
n°607383
nraynaud
lol
Posté le 10-01-2004 à 20:21:45  profilanswer
 

Kristoph a écrit :

Maintenant, je vais peut-être essayer la branche tree-ssa. Il parrait que ça fait de très bonnes optims le ssa :) Entre autre, ça peut produire tout seul du code qui parallelise les calculs

SSA, c'est une représentation fonctionnelle du programme, je ferais peut-être un paté là-dessus un jour.
 
 
Ce qui me fait marrer c'est que les chantres des effets de bords sont sauvés par une représantation sans effets de bords (d'où la possibilité de beaucoup transformer le graphe).


---------------
trainoo.com, c'est fini
n°607413
antp
Super Administrateur
Champion des excuses bidons
Posté le 10-01-2004 à 20:55:56  profilanswer
 

os2 a écrit :

Si un langage X propose 2 façons de faire le même calcul, et si l'une est plus rapide, je vois pas pourquoi, à moins d'être maso, il faudrait choisir la plus lente.


 
Si un test a pour but de tester la vitesse des opération sur des entiers, et que tu utilises une division de deux réels pour ça, j'appelle pas ça un bon test :D
D'un autre côté, faut voir comment les autres langages le gèrent...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°607435
Kristoph
Posté le 10-01-2004 à 21:39:24  profilanswer
 

os2 a écrit :


 
je cite:
 
le bench sert à déterminer qui sera le plus efficace à effectuer une tache, pas le plus efficace à suivre les spécifications qui sont pas les  
siennes.
 
Un bench d'un langage sert à  
tester la rapidité du langage, pas d'une instruction en particulier. Si un langage X propose 2 façons de faire le même calcul, et si l'une est plus rapide, je vois pas pourquoi, à moins d'être maso, il faudrait choisir la plus lente.


 
Si monsieur le boulet se donnait la peine de reflechire 2 secondes, il comprendrait que :
- On ne peut *pas* remplacer toutes les divisions sur des entiers 64bits par des operations sur les flottants car les resultats ne sont pas du tout les mêmes. Ces 2 opérations ne sont pas les mêmes c'est tout.
- Rien ne m'empeche de faire pareil en C ou en C++ mais je ne le fait pas car ça fausse les resultats et donc que c'est une mauvaise optim.
 
Si tu ne me crois pas, essaye de calculer 9223372036854775807 / 2 en Int64 et en Double pour voir le resultat

n°607436
os2
Posté le 10-01-2004 à 21:41:46  profilanswer
 

Kristoph a écrit :


 
Si monsieur le boulet se donnait la peine de reflechire 2 secondes, il comprendrait que :
- On ne peut *pas* remplacer toutes les divisions sur des entiers 64bits par des operations sur les flottants car les resultats ne sont pas du tout les mêmes. Ces 2 opérations ne sont pas les mêmes c'est tout.
- Rien ne m'empeche de faire pareil en C ou en C++ mais je ne le fait pas car ça fausse les resultats et donc que c'est une mauvaise optim.
 
Si tu ne me crois pas, essaye de calculer 9223372036854775807 / 2 en Int64 et en Double pour voir le resultat


 
[:madyodaseb] en plus il se "croit"  :lol:
surement un américain


---------------
Borland rulez: http://pages.infinit.net/borland
n°607440
chrisbk
-
Posté le 10-01-2004 à 21:45:47  profilanswer
 

os2 a écrit :


 
[:madyodaseb] en plus il se "croit"  :lol:
surement un américain


quels sont les arguments que tu lui opposes ?

n°607444
Kristoph
Posté le 10-01-2004 à 21:57:25  profilanswer
 

os2 a écrit :


 
[:madyodaseb] en plus il se "croit"  :lol:
surement un américain


 
En tout cas, j'espere que tu ne travailleras jamais sur un compilateur de pret ou de loin.

n°607446
chrisbk
-
Posté le 10-01-2004 à 21:58:35  profilanswer
 

Kristoph a écrit :


 
En tout cas, j'espere que tu ne travailleras jamais sur un compilateur de pret ou de loin.


 
au vu de ses competences je pense pouvoir dire qu'on est peinard

n°607461
nraynaud
lol
Posté le 10-01-2004 à 22:19:43  profilanswer
 

chrisbk a écrit :

au vu de ses competences je pense pouvoir dire qu'on est peinard

mon cul. C'est typiquement le mec qu'on peut trouver n'importe où. Ces mecs-là on les fait monter dans la hiérarchie rapidement pour qu'il soient moins dangereux.


---------------
trainoo.com, c'est fini
n°607472
os2
Posté le 10-01-2004 à 22:39:09  profilanswer
 

chrisbk a écrit :


quels sont les arguments que tu lui opposes ?


 
qui a dit que je lui opposait des arguements?
c'est le ton: moi je le pète qui me fait marrer
 
de plus dans ce test ça ne change rien au résultat


---------------
Borland rulez: http://pages.infinit.net/borland
n°607473
chrisbk
-
Posté le 10-01-2004 à 22:40:43  profilanswer
 

os2 a écrit :


 
qui a dit que je lui opposait des arguements?


 
donc au lieu de repondre a son post intelligent (il avance des faits, lui) par des arguments, tu prefere repondre par des insultes
 
dis, ca t'arrives jamais de te trouver con ? meme juste un petit peu ?
 

n°607474
os2
Posté le 10-01-2004 à 22:40:59  profilanswer
 

Kristoph a écrit :


 
En tout cas, j'espere que tu ne travailleras jamais sur un compilateur de pret ou de loin.


 
pourquoi faire un compilo quand il en existe une panoplie?
aucun intérêt valabe
 
t'es surement un mec d'info pour se la péter autant


---------------
Borland rulez: http://pages.infinit.net/borland
n°607476
os2
Posté le 10-01-2004 à 22:42:16  profilanswer
 

chrisbk a écrit :


 
donc au lieu de repondre a son post intelligent (il avance des faits, lui) par des arguments, tu prefere repondre par des insultes
 
dis, ca t'arrives jamais de te trouver con ? meme juste un petit peu ?
 
 


 
dit ça t'arrive de t'enlever le doigt du cul :sarcastic:


---------------
Borland rulez: http://pages.infinit.net/borland
n°607477
os2
Posté le 10-01-2004 à 22:43:01  profilanswer
 

nraynaud a écrit :

mon cul. C'est typiquement le mec qu'on peut trouver n'importe où. Ces mecs-là on les fait monter dans la hiérarchie rapidement pour qu'il soient moins dangereux.


 
un autre qui joue du violon, dit si ta pas eu la carrière que tu voulais, c'est pas la faute des autres


---------------
Borland rulez: http://pages.infinit.net/borland
n°607478
chrisbk
-
Posté le 10-01-2004 à 22:45:11  profilanswer
 

os2 a écrit :


 
dit ça t'arrive de t'enlever le doigt du cul :sarcastic:


 
ouais, pour te repondre, mais finalement je crois que je prefere quand meme le contact de la merde, c'est moins salissant que ta connerie


Message édité par chrisbk le 10-01-2004 à 22:45:26
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4

Aller à :
Ajouter une réponse
 

Sujets relatifs
En quels langages sont conçus les logiciels "pro" ?Comment parametrer la vitesse d'un défilement de texte ??
Windows - vitesse de connexion au réseau localComment controler la vitesse des ventilos comme speedfan ?
la fin des langages de programmation... sous Windows evidemment[Visual Basic] Changer la vitesse du ventilateur cpu ?
[tous langages Web]gestion de cookies SSO[Perl] Vitesse entre grep et defined
Vitesse d'exécution des dernières versions de DephiInclude / fonctions / vitesse d'execution
Plus de sujets relatifs à : De la vitesse des langages...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR