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

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

[JAVA][C#]Meilleur performance entre C# et Java ?

n°427368
deltaden
Posté le 14-06-2003 à 02:25:31  profilanswer
 

Reprise du message précédent :
comparaison des perfs (bon d'accord, ca date un peu, mais c'est tout ce que j'ai trouvé :/ )=> http://www.aceshardware.com/read.jsp?id=153
 
Sinon, la machine Hotspot de Sun c'est encore plus balèze qu'un JIT. Si je me souviens bien, un JIT, ca compile tout en une fois (enfin, méthode par méthode non ?) en natif et puis ca exécute.  
La Hotspot, elle commence directement en interpretant, et si elle trouve qu'il y a des bouts de code où ca reste longtemps, elle créé une nouvelle thread pour compiler ce bout de code en parallèle puis le remplace par le code natif.
 
Par exemple, si il y a 5000 ligne qui s'exécute qu'une fois, puis une boucle où elle passe tout son temps, elle compile juste la boucle. Et puis, si ca reste vraiment longtemps, elle repasse une deuxième couche avec les infos qu'elle a sur l'exécution (loop unrolling et des trucs comme ca). En gros, elle fait comme les profiler en C++, mais en temps réel!
Elle fait aussi de l'inlining et d'autre trucs, je sais plus trop...
J'avais lu un papier là dessus et c'était assez impressionant!
 
Apparement, ca marche assez bien (en tout cas pour certains codes): j'ai testé avec un algo de résolution de problème à contraintes (problème des N-reines pour ceux qui connaissent) et avec la JIT du jdk1.2.2, ca prenait 35sec, avec la hotspot du jdk1.4, ca descendait à 9sec. Pas négligeable quoi :)

mood
Publicité
Posté le 14-06-2003 à 02:25:31  profilanswer
 

n°427450
Tetragramm​aton IHVH
dieu unique => pensée unique
Posté le 14-06-2003 à 11:13:11  profilanswer
 

Imhotep a écrit :


Oui je sais, et c'est pour ca que je suis venu ici, pour me renseigner sur les différences de perfs entre java et c# s'il y en a... mais je remaque que personne ne m'a répondu pour l'instant...


 
un moteur en raytracing, c'est impossible d'en faire un rapide sous une machine virtuelle vu les temps de calcul mis en cause (entre 30 min et plusieurs jours) => C++ only


Message édité par Tetragrammaton IHVH le 14-06-2003 à 11:47:20

---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
n°427517
verdoux
And I'm still waiting
Posté le 14-06-2003 à 13:09:52  profilanswer
 

Le mieux c'est de la faire en assembleur en utilisant les extensions SIMD de ton proc.

n°427548
Tetragramm​aton IHVH
dieu unique => pensée unique
Posté le 14-06-2003 à 14:06:40  profilanswer
 

verdoux a écrit :

Le mieux c'est de la faire en assembleur en utilisant les extensions SIMD de ton proc.


 
Certainement, mais il faut reserver une chambre à l'hopital psychiatrique dès la phase de conception :D


---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
n°431730
BifaceMcLe​OD
The HighGlandeur
Posté le 18-06-2003 à 11:39:06  profilanswer
 

Tetragrammaton IHVH a écrit :


 
un moteur en raytracing, c'est impossible d'en faire un rapide sous une machine virtuelle vu les temps de calcul mis en cause (entre 30 min et plusieurs jours) => C++ only


Question bête : tu t'es basé sur des mesures pour dire cela ? Si tu en faisais, à mon avis, tu aurais de grosses surprises...
 
Franchement, la différence de vitesse n'est pas si considérable (ce n'est pas comme si tu écrivais ton moteur dans un langage de script style Perl, par exemple) qu'elle rende réddhibitoire l'utilisation de Java. Même si tu avais un facteur 5 (i.e. Java 5 fois plus lent que C++, ce qui reste à démontrer pour ce type d'applications), n'oublie jamais que cela correspond à la différence entre les processeurs d'aujourd'hui et les processeurs d'il y a 3 ans seulement. Pas énorme...

n°431743
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 18-06-2003 à 11:48:58  profilanswer
 

verdoux a écrit :

Le mieux c'est de la faire en assembleur en utilisant les extensions SIMD de ton proc.

[:cupra]


---------------
J'ai un string dans l'array (Paris Hilton)
n°431891
MagicBuzz
Posté le 18-06-2003 à 14:18:09  profilanswer
 

Euh... Je comprends pas trop les premères réactions (j'ai pas lu la suite, je me suis arrêté au moment où ça commence à enfin devenir à peut près sérieux).
 
Y'a des gens qui ont lu pour quoi c'était faire ?
 
RayTracing.
 
Ca vous dis quelquechose ?
 
Bosser avec des réels 64 bits en faisant des fonction de calculs intensifs, y'a pas photo, Java est à la ramasse complète. Aucun avantage de ce langage n'est exploitable, et il ne reste plus que les inconvénients, qui sont loin d'être petits, notamment au niveau de la rapidité d'éxécution pour les fonctions de bas niveau. (et niveau calculs dans un raytracer, ça se pose là pour ce qui est des calculs de bas niveau, c'est pas la phase de modèlisation de la scène en mémoire qui est longue, mais la phase de calcul des rayons).
 
Le C# devrait être à peine plus rapide, parceque son seul avantage par rapport au java, c'est qu'une vois le programme démarré, il est compilé en mémoire, et c'est donc du code natif qui est éxécuté, on gagne donc un peu...
 
Mais il n'est lui non plus pas du tout adapté.
 
Le C++ est évidement mieu adapté, mais à nouveau, il est bien trop lent par rapport aux besoins d'un raytracer. Le C pur est la seule solution réellement performante.
 
A la limite... Je crois que c'est le fortran aussi, qui est très bon en matière de calculs.
 
Sinon il reste toujours l'ASM, mais là je vous souhaite du courrage ;)
 
En résumé, Java ou C#, ça sera à peut près la même catastrophe niveau temps, avec un léger avantage pour le C#. Si c'est juste pour le fun, vous pouvez vous amuser à faire votre appli avec des langages. Mais si c'est en réponse à un réel besoin, laissez tomber et utilisez un langage qui est destiné à ce ganre de programmes, c'est à dire soit de TRES bas niveau (C) soit doté de librairies de calcul très performantes (je crois que c'est le fortran, mais je suis pas sûr)

n°431898
Serial Cod​er
Posté le 18-06-2003 à 14:26:47  profilanswer
 

De toute façon, c'est une hérésie de faire des moteurs 3D dans un langage autre que l'assembleur...


---------------
Je code en série et en parallèle
n°431900
MagicBuzz
Posté le 18-06-2003 à 14:29:31  profilanswer
 

Serial Coder a écrit :

De toute façon, c'est une hérésie de faire des moteurs 3D dans un langage autre que l'assembleur...


Bah ça dépends de quelle partie... Franchement, la partie qui s'occupe de générer l'image à partir des pixels calculés, elle serait écrite en BASIC et tournerait sur un GOUPIL, ça changerait rien à la vitesse d'éxécution du raytracer ;)
 
Y'a juste les fonctions de calculs qui peuvent tirer profit de l'assembleur (sâchant qu'il ne faut pas négliger un code C optimisé, parceque les bidouilles que pourra faire le compilo peuvent être source de grosses optimisation par rapport à un code ASM pur pas forcément maîtrisé à 100% ;)

n°431904
Serial Cod​er
Posté le 18-06-2003 à 14:31:47  profilanswer
 

MagicBuzz a écrit :


Bah ça dépends de quelle partie... Franchement, la partie qui s'occupe de générer l'image à partir des pixels calculés, elle serait écrite en BASIC et tournerait sur un GOUPIL, ça changerait rien à la vitesse d'éxécution du raytracer ;)
 
Y'a juste les fonctions de calculs qui peuvent tirer profit de l'assembleur (sâchant qu'il ne faut pas négliger un code C optimisé, parceque les bidouilles que pourra faire le compilo peuvent être source de grosses optimisation par rapport à un code ASM pur pas forcément maîtrisé à 100% ;)


Ouais mais 9 fois sur 10, les compilos actuels oublient les extensions SIMD des proc en compilant, du coup tu vas compiler du C sur un Athlon XP qui n'utilisera même pas le SSE ou le MMX ! Alors que ça procure un gain de vitesse non négligeable !


---------------
Je code en série et en parallèle
mood
Publicité
Posté le 18-06-2003 à 14:31:47  profilanswer
 

n°431971
Tetragramm​aton IHVH
dieu unique => pensée unique
Posté le 18-06-2003 à 15:44:14  profilanswer
 

BifaceMcLeOD a écrit :


Question bête : tu t'es basé sur des mesures pour dire cela ? Si tu en faisais, à mon avis, tu aurais de grosses surprises...
 
Franchement, la différence de vitesse n'est pas si considérable


 
[:rofl] [:rofl] [:rofl] [:rofl] [:rofl]
 
Faire du raytracing en java est d'autant plus débile qu'un code de moteur est très facilement portable puisque c'est que du C++ ultrastandard et qu'il n'y aucun appel API ou d'UI ou autre.


Message édité par Tetragrammaton IHVH le 18-06-2003 à 15:47:58

---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
n°432275
deltaden
Posté le 18-06-2003 à 18:59:55  profilanswer
 

MagicBuzz a écrit :

Le C# devrait être à peine plus rapide, parceque son seul avantage par rapport au java, c'est qu'une vois le programme démarré, il est compilé en mémoire, et c'est donc du code natif qui est éxécuté, on gagne donc un peu...


Et tu crois que le java il fait quoi ?
Qu'il s'amuse à interpeter instruction par instruction ?
On est plus au stade du java 1.1 hein ;)
 
Mais je suis d'accord que ce n'est sans doute pas le langage le plus adapté.  
Quoi qu'il est toujours possible de faire tout en java et de faire le moteur de raytracing en C, c'est pas difficile de faire un appel JNI à partir de Java.  
Comme ca, si le moteur est fait en C tout à fait standart, tout le programme sera facilement portable, interface graphique comprise.


Message édité par deltaden le 18-06-2003 à 19:00:39
n°432289
Imhotep
Le monde est mon huître !!!
Posté le 18-06-2003 à 19:14:44  profilanswer
 

C plus rapide que C++ ???? Pourquoi ???

n°432300
skeye
Posté le 18-06-2003 à 19:22:29  profilanswer
 

Imhotep a écrit :

C plus rapide que C++ ???? Pourquoi ???


+ bas niveau...après c'est comme tjrs, ca dépend de ta façon de coder... [:skeye]

n°432336
Tetragramm​aton IHVH
dieu unique => pensée unique
Posté le 18-06-2003 à 19:51:53  profilanswer
 

deltaden a écrit :


 
Quoi qu'il est toujours possible de faire tout en java et de faire le moteur de raytracing en C, c'est pas difficile de faire un appel JNI à partir de Java.  
Comme ca, si le moteur est fait en C tout à fait standart, tout le programme sera facilement portable, interface graphique comprise.


 
à la limite, c'est une bonne solution  :jap:


---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
n°432351
deltaden
Posté le 18-06-2003 à 20:15:30  profilanswer
 

Tetragrammaton IHVH a écrit :

à la limite, c'est une bonne solution  :jap:


Je pense à ca parce que je compte faire la même chose pour un tout autre projet :)

n°432357
MagicBuzz
Posté le 18-06-2003 à 20:24:32  profilanswer
 

Bah moi, je vais sur www.povray.org, je dwl les sources, je les charge dans VC++ et je compile et zou, je viens de faire mon super raytracer super bien en quelques secondes :D

n°432358
MagicBuzz
Posté le 18-06-2003 à 20:25:05  profilanswer
 

Et si je veux le porter sur amiga, je dwl les sources pour amiga :D
 
C encore plus portable que le Java ;)

n°432359
deltaden
Posté le 18-06-2003 à 20:27:20  profilanswer
 

MagicBuzz a écrit :

Et si je veux le porter sur amiga, je dwl les sources pour amiga :D
 
C encore plus portable que le Java ;)


C'est po vrai, tu sais pas le faire tourner sur mon GSM :o

n°432361
MagicBuzz
Posté le 18-06-2003 à 20:29:48  profilanswer
 

Va faire tourner un raytracer en java sur un gsm toi :o ;)


Message édité par MagicBuzz le 18-06-2003 à 20:30:04
n°432364
Tetragramm​aton IHVH
dieu unique => pensée unique
Posté le 18-06-2003 à 20:32:51  profilanswer
 

MagicBuzz a écrit :

Va faire tourner un raytracer en java sur un gsm toi :o ;)


 
on peut peut-être faire les calculs en parallèle sur plusieurs GSM pour accélérer :whistle:


---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
n°432384
uriel
blood pt.2
Posté le 18-06-2003 à 20:54:31  profilanswer
 

Tetragrammaton IHVH a écrit :


 
on peut peut-être faire les calculs en parallèle sur plusieurs GSM pour accélérer :whistle:  


 
comme ceux qui ont fait un mega calculateur avec 65 playstations en parrallele  :)  
 
[:drapo]


---------------
IVG en france
n°432386
Tetragramm​aton IHVH
dieu unique => pensée unique
Posté le 18-06-2003 à 20:56:52  profilanswer
 

uriel a écrit :


 
comme ceux qui ont fait un mega calculateur avec 65 playstations en parrallele  :)  
 
[:drapo]


 
ouais, ça doit presque atteindre un p4 3ghz  :D


---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
n°432390
uriel
blood pt.2
Posté le 18-06-2003 à 21:02:53  profilanswer
 

Tetragrammaton IHVH a écrit :


 
ouais, ça doit presque atteindre un p4 3ghz  :D  


 
j'ai retrouvé le lien  
http://arrakis.ncsa.uiuc.edu/ps2/cluster.php
 :D


---------------
IVG en france
n°432413
deltaden
Posté le 18-06-2003 à 21:35:36  profilanswer
 

Tetragrammaton IHVH a écrit :

on peut peut-être faire les calculs en parallèle sur plusieurs GSM pour accélérer :whistle:


ouais, j'y pensais aussi, mais niveau consommation ca va pas être top, va falloir améliorer les batteris :D

n°432468
MagicBuzz
Posté le 18-06-2003 à 22:21:24  profilanswer
 

deltaden a écrit :


ouais, j'y pensais aussi, mais niveau consommation ca va pas être top, va falloir améliorer les batteris :D


Pis je te raconte pas les communication GSM :D

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
[ java ] transfert de fichiers dans un socket[Java] erreur sous IntelliJ IDEA, sous Jbuilder non...
Applet JAVA dans du DHTMLPetite aide pour la réalisation d'un sniffer en JAVA
[java] rafraichissement jframe + info optimisation [OK][ java ] ecouteur sur un repertoire
[java] sortie dans un fichier excel?[JAVA]chemin sous-optimal+metro =je craque!!!!
JNI - Obtenir une image Java à partir d'une image WindowsOutil de dév java free
Plus de sujets relatifs à : [JAVA][C#]Meilleur performance entre C# et Java ?


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