processeur java... - Java - Programmation
Marsh Posté le 01-02-2003 à 09:39:12
Si je me souviens bien, la raison pour laquelle Sun avait abandonné le processeur PicoJava, était parce qu'ils n'arrivaient pas à progresser plus vite que les processeurs classiques fonctionnant avec un compilateur JIT.
C'est encore vrai aujourd'hui. Avec les derniers compilateurs JIT, un programme Java est globalement 4 à 5 fois plus lent que son équivalent C ou C++, mais chaque année la vitesse d'exécution de ce même programme Java augmente par le simple fait de l'augmentation de la vitesse des processeurs (souviens-toi de la loi de Moore).
Sun n'arrivait tout simplement pas à suivre les autres fondeurs sur leur propre terrain...
Marsh Posté le 01-02-2003 à 10:39:58
Biface
Marsh Posté le 01-02-2003 à 14:45:45
Y a ARM qui propose des CPUs optimisés pour Java:
http://www.arm.com/armtech/jazelle?OpenDocument
Marsh Posté le 01-02-2003 à 16:25:30
BifaceMcLeOD a écrit : Si je me souviens bien, la raison pour laquelle Sun avait abandonné le processeur PicoJava, était parce qu'ils n'arrivaient pas à progresser plus vite que les processeurs classiques fonctionnant avec un compilateur JIT. |
il y a que les jvm devienne de plus en plus rapide
Marsh Posté le 01-02-2003 à 20:26:48
BifaceMcLeOD a écrit : |
EDIT : je reagis quant au "4 a 5 fois" qui est tout sauf justifie.
En fait j'ai envie de dire "n'importe quoi"... Tu compares quoi a quoi ? Quelle execution ? etc... deja comparer C et Java (java est OO je le rapelle) est hum... "nul"
Selon ce que tu fais java peut etre tout aussi rapide que l'equivalent en C++ (voir un peu plus rapide dans certains rares cas : celui dont j'ai connaissance est une serie de calculs mathematiques pousses realises pour comparer differents langages)... Maintenant si l'on parle de GUI c'est une autre affaire. Mais il faut voir dans quel but a ete cree Java, quelles sont ses forces (mais c'est une autre histoire et je ne dis pas que tu remets en cause ceci)
Bref, tes propos ressemblent fortement a ceux des gens qui disent "ouais mais bon smalltalk est lent car il est interprete puis utilise un JIT"... Pour info Smalltalk atteint a present, en moyenne, 98% de la vitesse de code C++ et le depasse souvent en performances.
Ciao
Marsh Posté le 01-02-2003 à 20:31:06
phenixl je me permets de réagir à ton post. Biface est probablement l'une des personnes les plus expertes en Java ici et j'apprécie que moyennement le ton que tu utilises là ... Tes remarques sont fondées je crois mais ce que biface a voulu faire, c'est montrer un cas "général" sans trop rentrer dans les détails ...
Voilà. Désolé si je te vexe mais j'ai bcp de respect pour les réponses de Biface ici et je pouvais pas laisser passer ça
Marsh Posté le 01-02-2003 à 23:05:30
os2 a écrit : |
tout à fait, j'ai fait par exemple une comparaison entre la jvm du jdk1.2.2 qui est un bête JIT et celle de jdk1.4.1 qui est la jvm hotspot.
Pour un prog de résolution d'un problème de contraintes (ici, problème des n-reines, pour 12 reines, en lui demandant de trouver toutes les solutions)
jdk1.2.2: 31 sec
jdk1.4.1: 11 sec
jdk1.4.1 optimisation -server: 7.5 sec (à partir de la 2e exécution, la 1e met 30 sec)
C'est quand même pas mal comme amélioration!
Mais c'est vrai que ce n'est qu'un exemple, j'ai un autre prog qui ne gagne quasiment pas de perfs.
Marsh Posté le 02-02-2003 à 04:42:59
++Taz a écrit : excellent le lien, c'est parfait pour l'embarqué |
tu connais TINI ?
Marsh Posté le 02-02-2003 à 10:57:44
--greg-- a écrit : tu connais TINI ? |
je l'avais oublié celui là
faut poster vos liens dans la java faq hein
Marsh Posté le 02-02-2003 à 14:04:50
DarkLord a écrit : phenixl je me permets de réagir à ton post. Biface est probablement l'une des personnes les plus expertes en Java ici et j'apprécie que moyennement le ton que tu utilises là ... Tes remarques sont fondées je crois mais ce que biface a voulu faire, c'est montrer un cas "général" sans trop rentrer dans les détails ... |
Salut,
Tu ne me vexes pas du tout. Mon but n'est pas d'etre agressif mais dire que java est 4 a 5 fois plus lent que C/C++ est simplement un troll. Presenter ceci comme un cas general... tu veux faire avaler ceci a qui ? (c'est sympa de vouloir defendre les petits camarades mais bon il ne faut pas exagerer)
Concernant l'expertise : je n'entrerai pas dans cette discussion. Je ne doute pas de ses competences, mais j'ai egalement les miennes
Marsh Posté le 02-02-2003 à 19:48:10
++Taz a écrit : pas mal, mais ca vaut pas l'anim flash de l'autre |
Marsh Posté le 02-02-2003 à 19:49:42
en terme de présentation du processeur, de ses fonctionnalités, etc
Marsh Posté le 02-02-2003 à 19:55:46
++Taz a écrit : en terme de présentation du processeur, de ses fonctionnalités, etc |
ha
mais le tini c pas juste un processeur...
Marsh Posté le 03-02-2003 à 11:29:40
phenixl> Détrompe-toi, je ne fais pas partie de ces gens qui généralisent à outrance pour dénigrer. En particulier au sujet de Java.
Franchement, à choisir entre C++ et Java dans le cadre d'un programme réel dans l'industrie, je n'hésite pas une seconde... je jette C++. A mes yeux, les avantages de Java en matière de sécurité de programmation contre-balancent plus que largement les inconvénients qui lui sont généralement attribués. Typiquement la vitesse d'exécution.
Précisément, la vitesse d'exécution. Il ne faut pas se voiler la face : j'ai une expérience conséquente dans les technologies objet (des langages jusqu'aux SGBD en passant par la philosophie ou la modélisation), et cette expérience montre que les gros programmes sont globalement plus lents lorsqu'ils sont écrits en Java que lorsqu'ils sont écrits en C ou en C++.
Le facteur 4 ou 5 est un ordre de grandeur, et il n'est que cela. D'abord, dans mon post, il fallait le comparer au facteur 40 ou 50 qu'on observait avec l'interpréteur de bytecode des premières machines virtuelles Java, et puis surtout, c'est évident, tu trouveras toujours des morceaux de programmes où ce rapport est totalement faux.
Par exemple, un programme Java3D correctement écrit n'est pas fondamentalement plus lent que son équivalent C++ ; en fait, c'est parfaitement logique, puisque les routines critiques sont celles des librairies OpenGL, dont la vitesse d'exécution ne dépend pas vraiment du langage de programmation utilisé pour programmer l'application. Autre exemple, certaines opérations arithmétriques ou bit à bit sont plus rapides en Java qu'en C++... alors que l'intuition tendrait à croire le contraire.
Maintenant, concernant mon post précédent, que tu sembles critiquer avec virulence (mais je reconnais là la passion, celle-là même qui m'anime aussi ), le fond de ma pensée n'était pas de dire ou prétendre que Java était lent. Au contraire, mon raisonnement -- et celui de Sun -- est plutôt de considérer qu'on n'a pas vraiment besoin d'un processeur spécialisé pour exécuter efficacement des programmes Java ; les processeurs standard font cela très bien. Mieux vaut se concentrer sur l'amélioration de la machine virtuelle.
C'est ce qu'a fait Sun, et, comme l'a montré deltaden sur un exemple simple, très efficacement (si j'ose dire ).
PS : Merci à toi, ô DarkLord...
Marsh Posté le 03-02-2003 à 11:33:34
Marsh Posté le 03-02-2003 à 11:44:46
Juste pour montrer le fond ma pensée, même si je fais dériver un peu le topic :
http://forum.hardware.fr/forum2.ph [...] h=&subcat=
Voilà typiquement une question qui me fait bondir. Faut-il ou non utiliser un itérateur s'il n'est pas plus rapide qu'un accès par indice.
Mais franchement, on s'en fout ! Voilà ce que je reproche aux programmeurs C/C++ typiques. Même si l'itérateur était 2 fois plus lent que le parcours par indice, il faudrait utiliser l'itérateur, parce qu'il unifie l'accès à la collection, quelle que soit cette collection, parce qu'il garantit qu'on ne va pas taper en dehors de la collection, parce qu'il garantit qu'on ne loupera aucun objet, bref, parce qu'il réduit de manière considérable le risque de bugs. De toute façon, ne serait-ce qu'il y a 3 ans, les processeurs étaient 4 fois plus lents que les processeurs d'aujourd'hui (au même prix), alors le petit surcoût de l'itérateur, franchement on s'en bat les .... (biiiiip ! Censuré ! )
Marsh Posté le 03-02-2003 à 11:56:06
couilles
Marsh Posté le 03-02-2003 à 12:28:41
ReplyMarsh Posté le 03-02-2003 à 12:29:20
kadreg a écrit : |
quoi, ça te choque qu'on écrive "couilles" ici?
Marsh Posté le 03-02-2003 à 12:30:22
--greg-- a écrit : quoi, ça te choque qu'on écrive "couilles" ici? |
Marsh Posté le 03-02-2003 à 12:44:02
Ben non, moi, je ne le dis pas, c'est tout.
Ceci dit, il n'y avait pas besoin de le poster, tout le monde l'avait entendu.
Marsh Posté le 03-02-2003 à 12:51:46
BifaceMcLeOD a écrit : Ben non, moi, je ne le dis pas, c'est tout. |
ha bon, j'aurais cru
Marsh Posté le 09-02-2003 à 10:58:38
os2 a écrit : sun avait mentionné il y a quelques années qu'il avait créer des processeur pouvant accéleré l'excution de code java... a l'époque (3, 4 ans) c'était trop dispendieux a implanté pour les ordi des particulier... que diriez-vous s'il était possible maintenant de l'avoir? |
Tiens je detere ce topic et te donne une reponse tout fraiche ; ca existe, une societe francaise (AED) propose un processeur Java 35mu.
Site de la boite : http://www.a-e-d.com/
L'info sur le produit : http://perso.wanadoo.fr/aedvlsi/product.htm
Voici le whitepaper : http://perso.wanadoo.fr/aedvlsi/japwhitepaper.pdf
Ciao !
Marsh Posté le 01-02-2003 à 06:06:04
sun avait mentionné il y a quelques années qu'il avait créer des processeur pouvant accéleré l'excution de code java... a l'époque (3, 4 ans) c'était trop dispendieux a implanté pour les ordi des particulier... que diriez-vous s'il était possible maintenant de l'avoir?
---------------
Borland rulez: http://pages.infinit.net/borland