De la vitesse des langages... - Divers - Programmation
Marsh Posté le 09-01-2004 à 18:35:43
Bon, je réouvre, mais faut que ce soit pour discuter sérieusement.
Ne pas oublier que si jamais vous voulez troller, y a ce topic-là :
http://forum.hardware.fr/forum2.ph [...] post=31321
Marsh Posté le 09-01-2004 à 19:03:21
bon ben si qqun sait pkoi java se vautre comme ca en trig....
Marsh Posté le 09-01-2004 à 19:17:56
chrisbk a écrit : bon ben si qqun sait pkoi java se vautre comme ca en trig.... |
code source :
http://www.ocf.berkeley.edu/~cowel [...] hmark.java
Pour infos, Math.sin délègue à StrictMath.sin qui est une méthode native.
Marsh Posté le 09-01-2004 à 19:25:16
En même temps qui c'est qui l'a codé le bench ? P'tet que le mec est juste meilleur en C++ qu'en java....
Sinon ca comprend quoi au juste le calcul trigonométrique ?
EDIT : ouais j'ai rien dis, je viens de lire le code et y'a pas à être bon ou pas..
EDIT2 : en fait ce qui me surprend le plus c'est les bonnes perfs de java en I/O, j'ai toujours pensé que c'était son point faible.
Marsh Posté le 09-01-2004 à 19:45:36
kadreg a écrit : |
et donc ?
Marsh Posté le 09-01-2004 à 20:12:12
kadreg a écrit : |
juste pour la trig. je trouve ça bcp trop louche pour être honnete.
Marsh Posté le 09-01-2004 à 20:24:42
c est quoi le sens de ce graphe??? sachant que derriere il y a un scheduleur qui gere le temps alloue aux taches par le proc ?????
Marsh Posté le 09-01-2004 à 21:02:42
si t'enlèves la trigo, Java 1.4.2 est pas mal
Marsh Posté le 09-01-2004 à 21:10:20
avec la version du benchmark en java j'arrive vraiment très très près de ses valeurs mis à part pour la trigo où c'est environ 4 secondes plus rapide...
en espèrant que sun corrige la trigo dans java 1.5...
Marsh Posté le 09-01-2004 à 21:18:49
chrisbk a écrit : |
C'est plus un problème d'implémentation dans la bibliothèque standard (écrite en C) qu'un problème de langage.
Marsh Posté le 09-01-2004 à 21:21:17
kadreg a écrit : |
eurf, je vois pas comment on peut se planter dans ce genre de fonctions
Marsh Posté le 09-01-2004 à 21:29:15
je me méfie toujours de ce genre de bench, est ce vraiment représentatif de ce qui est utilisé en réalité ?
Marsh Posté le 09-01-2004 à 21:30:41
noldor a écrit : je me méfie toujours de ce genre de bench, est ce vraiment représentatif de ce qui est utilisé en réalité ? |
Vieux proverbe : le meilleur benchmark est l'application que l'on compte utiliser.
Marsh Posté le 09-01-2004 à 21:39:12
1) le gcc est sous cygwin
2) le traitement int64 bits n'a aucun sens en Python
3) tiens les produits MS en premier
4) le code est loin d'être propre, c'est du travail de chaffouin
5) moi je prends le code C sur mon XP200+, je compile en -O0, je lance (seti@bg) et pan, je fais direct 49s ... super...
Marsh Posté le 09-01-2004 à 21:42:02
taz a écrit : 1) le gcc est sous cygwin |
ca chiffone hein ?
Marsh Posté le 09-01-2004 à 21:45:44
chrisbk a écrit : |
ben c'est pas très fin comme troll enfin bon chez osnews d'un autre côté, faut pas trop attendre ... leur news sur linux/le_libre sont pathétiques (pas autant que clubic qui annonce mandrake quand même)
Marsh Posté le 09-01-2004 à 21:47:12
taz a écrit : ben c'est pas très fin comme troll enfin bon chez osnews d'un autre côté, faut pas trop attendre ... leur news sur linux/le_libre sont pathétiques (pas autant que clubic qui annonce mandrake quand même) |
ah, donc si un bench place les produits MS en tete c'est un troll ?
Par contre le meme bench qui aurait mis du libre en tete, ca n'aurait pas été un troll ?
Ca ma l'air compliqué tout ca
enfin entre deux "trolls", on se bornera de signaler que VC++ est tres utilisé dans l'industrie du JV, sont pas mauvais en optimisation chez M$ (<< cado )
Marsh Posté le 09-01-2004 à 21:48:58
j'ai pas dit ça. je dis : tiens les produits MS sont en premier, la version de gcc_cywin est loin d'être la plus rapide, et bien qu'ayant une configuration plus modeste, et sans optimisation, j'obtiens avec gcc un meilleur score que VC++
bon t'es pas marrant ce soir
Marsh Posté le 09-01-2004 à 21:50:30
taz a écrit : |
pourtant je donne tout ce que j'ai
au fait si j'ai bien compris c pas du C++ compilé natif (ou je me plante ?)
ah si je me plante
Marsh Posté le 09-01-2004 à 21:52:13
pas mauvais en optimisation, mon oeil. un rapide tour en C++ montre clairement que le compilateur ignore certaines optimisations triviales. gcc_cygwin n'est pas aussi performant qu'un vrai gcc (comme sous linux par exemple)
Marsh Posté le 09-01-2004 à 21:52:47
taz a écrit : pas mauvais en optimisation, mon oeil. un rapide tour en C++ montre clairement que le compilateur ignore certaines optimisations triviales. gcc_cygwin n'est pas aussi performant qu'un vrai gcc (comme sous linux par exemple) |
fo compiler en release
c koi les optims trivials qu'il rate ? source ? preuve ? et pas du VC4 hein ?
Marsh Posté le 09-01-2004 à 21:54:25
bah je pense. n'ayant jamais utilisé VC, je suis mal placé, mais à chaque fois que je parle avec des gens, ils me montrent que certaines optimisations sont absentes
quand à python, quand tu vois la tronche du code, c'est tout sauf du python, faut pas s'étonner
Marsh Posté le 09-01-2004 à 21:59:08
c'est leger comme argumentation, jeune homme, tres leger, limite trollationique
Marsh Posté le 09-01-2004 à 22:01:56
ce sont des fait, froids et reproductibles, pas des on-dit, des "j'ai un pote qui dit que", ou autre truc du genre
Maintenant si le type a pris un gcc d'avant-guerre, c'est sur que cette comparaison est a oublier.
Marsh Posté le 09-01-2004 à 22:05:49
à oublier. et puis tout le monde sait que gcc est natif des *n*x sur lesquels ils règne. moi je te fais le meme truc avec wine et vc, on verra. bref gcc est pas la dans son environnement idéal.
et puis on teste sur une plateforme MS, les produits MS sont favoriés. je suis sur que la JVM sous solaris est bien plus rapide que ça par exemple
bon je vais au bar
Marsh Posté le 09-01-2004 à 22:10:33
taz a écrit : à oublier. et puis tout le monde sait que gcc est natif des *n*x sur lesquels ils règne. moi je te fais le meme truc avec wine et vc, on verra. bref gcc est pas la dans son environnement idéal. |
une certaine lassitude m'envahi a la lecture de tout ceci. je crios meme que je vais pousser un leger baillement et voir si je peux trainer mon colloc au bar. vider des bieres, au moins, ca se passe d'os
Marsh Posté le 09-01-2004 à 22:21:32
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.
Au fait, vous savez que GCC sait faire du "profiled based optimisation" lui aussi ? -fbranch-probabilities
Marsh Posté le 09-01-2004 à 22:37:00
Kristoph a écrit : |
Selon moi (qui ne programme pas en Java) une des principales raison de cette "croyance" de lenteur de Java c'est surtout que les interfaces graphiques sont souvent pas très réactives. Un peu comme le XUL de Mozilla
Marsh Posté le 09-01-2004 à 23:00:17
une version du bench vite fait en delphi
Code :
|
dans la fonction trig j'ai fait
Code :
|
au lieu de
Code :
|
car sinon la fonction Log10 plante
de plus puisque la fonction longArithmetic au lieu d'utiliser
des LongInt j'ai utiliser des Int64 car le LongInt de delphi permet pas d'aller aussi loin que les long en c....
Marsh Posté le 09-01-2004 à 23:03:03
Les long en C c'est 32 bits signés comme les int en C et les Integer en Delphi, non ?
Marsh Posté le 09-01-2004 à 23:14:11
Il aurait été bien plus pertinent de faire les tests gcc et python sur hardware egal sous linux
Marsh Posté le 09-01-2004 à 23:59:09
antp a écrit : Les long en C c'est 32 bits signés comme les int en C et les Integer en Delphi, non ? |
dans les test
en c il utilise le long long int (64 bit il me semble)
en java le long (64 bit)
sur un amd 1800+, 512 mb
a peut prêt son p4 car j'obtient des résultat quasi identique au sien
moyenne 50 test:
int aritmetic: 8121ms
double aritmetic: 11627ms
long aritmetic: 112101ms
trigo: 3896ms
io: 3835ms
total: 139580ms
meilleur score en int
4ième pour les doubles
derniers pour les long
deuxième pour la trio
premier pour le io (trop bas il me semble le score...)
Marsh Posté le 10-01-2004 à 00:00:37
J'aimerais quand même voir des resultats à machine égale plustot qu'un "A vue de nez ça se vaut"
Marsh Posté le 10-01-2004 à 00:08:21
os2 a écrit : |
avec quel compilo ? j'ai tj connu les long en 32 bits moi sur PC
Marsh Posté le 10-01-2004 à 00:17:28
antp a écrit : |
long long int et long c'est pas pareil
c'est toute spécifier au début du bench les types de donnée qu'il utilise (avec le nombre de byte)
Marsh Posté le 10-01-2004 à 00:19:18
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"
Marsh Posté le 10-01-2004 à 00:41:52
Code :
|
gcc 3.3.1 sur Athlon XP 1800+ avec 256Mo de ram
Marsh Posté le 09-01-2004 à 18:19:15
C est rapide comme l'éclair, java est lent. On entend souvent parler de vitesse d'éxécution de programme suivant leur langage. OsNews vient de publier un super benchmark entre plusieurs langages : Java 1.3.1, Java 1.4.2, C compilé avec gcc 3.3.1, Python 2.3.2, Python compilé avec Psyco 1.1.1, et les quatres langages de Visual Studio .NET 2003 : Visual Basic, Visual C#, Visual C++, et Visual J#.
En conclusion, quoi en retenir :
- Les différents langages de microsofts sont très rapides, et occupent 4 des 5 premières places.
- gcc est plus lent que visual C++, confirmant ainsi ses rumeurs de charettes
- java 1.4 est plus lent que le 1.3, contrairement à ce que raconte sun.
- Python n'apparait pas dans le tableau tellement il est lent (même en compilé), puisque 40 fois plus lent que le visual C++.
- si on exclue le calcul trigonométrique, java est du même niveau que les autres langages de microsoft.
La news : http://osnews.com/story.php?news_id=5602
---------------
brisez les rêves des gens, il en restera toujours quelque chose... -- laissez moi troller sur discu !