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

Meilleur performance entre C# et Java ? [JAVA][C#] - Divers - Programmation

Marsh Posté le 13-06-2003 à 08:45:47    

Salut
 
Avec un copain, cet été nous aimererions faire un moteur de ray-tracing. Connaissant "bien" C++ et trouvant ce language particulièrement chiant on aimerait en utiliser un autre. Pour ce qui est de Java, on le trouve trop lent, il reste C#. Mais on ne connais pas ces performances en terme de rapidité d'exécution face à Java et C++.  
 
Quelqu'un pourrait-il nous éclairer ???
 
Merci

Reply

Marsh Posté le 13-06-2003 à 08:45:47   

Reply

Marsh Posté le 13-06-2003 à 08:46:51    

Imhotep a écrit :

Salut
 
Avec un copain, cet été nous aimererions faire un moteur de ray-tracing. Connaissant "bien" C++ et trouvant ce language particulièrement chiant on aimerait en utiliser un autre. Pour ce qui est de Java, on le trouve trop lent, il reste C#. Mais on ne connais pas ces performances en terme de rapidité d'exécution face à Java et C++.  
 
Quelqu'un pourrait-il nous éclairer ???
 
Merci


 
troll :o
 
ban :o
 
(et si c'est sérieux peux tu justifier "on le trouve trop lent" )


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 13-06-2003 à 08:47:33    

T'as testé avant de dire que "Java est trop lent", ou c'est juste basé sur des à priori ?

Reply

Marsh Posté le 13-06-2003 à 08:47:59    

El_gringo a écrit :

T'as testé avant de dire que "Java est trop lent", ou c'est juste basé sur des à priori ?


 
;)  :hello:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 13-06-2003 à 08:48:16    

DarkLord a écrit :


 
troll :o
 
ban :o
 
(et si c'est sérieux peux tu justifier "on le trouve trop lent" )


C'est un copain qui lui a dit... [:ddr555]  
J'aime beaucoup le "on aime pas c++, on aime pas java, il ne reste donc plus que C#"...:lol:


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 13-06-2003 à 08:50:22    

skeye a écrit :


C'est un copain qui lui a dit... [:ddr555]  
J'aime beaucoup le "on aime pas c++, on aime pas java, il ne reste donc plus que C#"...:lol:


 
des futurus décideurs élevés au grain [:dawa]


Message édité par darklord le 13-06-2003 à 08:50:32

---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 13-06-2003 à 08:53:39    

[:abnocte invictus]


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 13-06-2003 à 08:55:24    

DarkLord a écrit :


 
des futurus décideurs élevés au grain [:dawa]


 :whistle:  
Pi d'abord les débats sur les langages ya un topic exprès! :o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 13-06-2003 à 09:00:14    

DarkLord a écrit :


 
troll :o
 
ban :o
 
(et si c'est sérieux peux tu justifier "on le trouve trop lent" )


 
Troll, Ban ??? Pkoi ???
 
Pourquoi trop lent ? Mais c bien connu voyons le fait de passé par une machine virtuel ne peut qu'augmenter considérablement les performances...  
J'ai déjà vu un moteur de ray-tracing tourné en java, comparé à un moteur de ray-tracing en c/c++, c le jour et la nuit...
 
J'ai jamais dis que je n'aimais pas java et c++ seulement java est nettement plus facile à manipuler que c++ et comme c# ce rapproche beaucoup de java, je me posais la question... mais bon si c'est trop vous demandé, je vais allé me renseigner ailleur....

Reply

Marsh Posté le 13-06-2003 à 09:01:26    

drapal


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 13-06-2003 à 09:01:26   

Reply

Marsh Posté le 13-06-2003 à 09:04:36    

Imhotep a écrit :


Pourquoi trop lent ? Mais c bien connu voyons le fait de passé par une machine virtuel ne peut qu'augmenter considérablement les performances...  
J'ai déjà vu un moteur de ray-tracing tourné en java, comparé à un moteur de ray-tracing en c/c++, c le jour et la nuit...


 
Je suppose que tu voulais dire que le fait de passer par une JVM ne pouvait que diminiuer les perfs, soit :o
 
Déjà de un il y a une différence ENORME entre dire ce language est trop lent et ce language est trop lent pour tel type d'application.  Tu as le droit de détester ce que tu veux, chacun est libre. Mais balancer on le trouve trop lent comme un cheveu ds la soupe, ca ne fait pas très sérieux ...


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 13-06-2003 à 09:04:58    

Imhotep a écrit :


Pourquoi trop lent ? Mais c bien connu voyons le fait de passé par une machine virtuel ne peut qu'augmenter considérablement les performances...  


 
Les JIT ça existe, et pour des algorithmes fortement répétitifs, seul la première itération est lente, puisqu'ensuite la convertion en code machine a déjà été faite une fois et est réutilisée.
 

Imhotep a écrit :


J'ai déjà vu un moteur de ray-tracing tourné en java, comparé à un moteur de ray-tracing en c/c++, c le jour et la nuit...


 
On peut trouver des moteurs de raytracing lents en C++ aussi. Un foirage sur l'algo, on monte d'un niveau en complexité par rapport à un autre moteur, et hop, un moteur lent, et ce indépendamment du langage utilisé.


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 13-06-2003 à 09:06:12    

Perso je vote Troll.


---------------
Le Tyran
Reply

Marsh Posté le 13-06-2003 à 09:08:41    

El_gringo a écrit :

T'as testé avant de dire que "Java est trop lent", ou c'est juste basé sur des à priori ?


 
perso j'ai testé et je trouve ca trop lent [:ciler]
 
 
<insert flame here>

Reply

Marsh Posté le 13-06-2003 à 09:08:45    

kadreg a écrit :


Les JIT ça existe, et pour des algorithmes fortement répétitifs, seul la première itération est lente, puisqu'ensuite la convertion en code machine a déjà été faite une fois et est réutilisée.


 
ça à l'air interressant ça, c'est quoi JIT ?

Reply

Marsh Posté le 13-06-2003 à 09:09:42    

Imhotep a écrit :


 
Troll, Ban ??? Pkoi ???
 
Pourquoi trop lent ? Mais c bien connu voyons le fait de passé par une machine virtuel ne peut qu'augmenter considérablement les performances...  
J'ai déjà vu un moteur de ray-tracing tourné en java, comparé à un moteur de ray-tracing en c/c++, c le jour et la nuit...
 
J'ai jamais dis que je n'aimais pas java et c++ seulement java est nettement plus facile à manipuler que c++ et comme c# ce rapproche beaucoup de java, je me posais la question... mais bon si c'est trop vous demandé, je vais allé me renseigner ailleur....


 
C#, ça tourne dans une machine virtuelle aussi (ou équivalent)

Reply

Marsh Posté le 13-06-2003 à 09:09:56    

El_gringo a écrit :


 
ça à l'air interressant ça, c'est quoi JIT ?


 
Just In Time
 
tu compile qu'une fois si je dis pas de connerie

Reply

Marsh Posté le 13-06-2003 à 09:10:31    

El_gringo a écrit :


 
ça à l'air interressant ça, c'est quoi JIT ?


 
bin Just In Time tu connais pas? :heink:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 13-06-2003 à 09:12:37    

DarkLord a écrit :


 
bin Just In Time tu connais pas? :heink:


 
Ben non. J'devrais ?

Reply

Marsh Posté le 13-06-2003 à 09:14:56    

El_gringo a écrit :


 
Ben non. J'devrais ?


 
euh non pas forcément ...


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 13-06-2003 à 09:16:06    

JIT = compilation à la volée. En gros, le programme est compilé pendant son exécution


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 13-06-2003 à 09:17:10    

Harkonnen a écrit :

JIT = compilation à la volée. En gros, le programme est compilé pendant son exécution


 
(ca doit etre horrible a programmer un truc comme ca)

Reply

Marsh Posté le 13-06-2003 à 09:17:18    

El_gringo a écrit :


 
C#, ça tourne dans une machine virtuelle aussi (ou équivalent)


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...

Reply

Marsh Posté le 13-06-2003 à 09:18:06    

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...


 
y'a eu pas mal de test de fait je crois, cherche sur le net, mais a priori ce genre de question c l'ideal pour declencher une bonne guerre des familles :D

Reply

Marsh Posté le 13-06-2003 à 09:18:57    

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...


C'est parce-qu'il n'y a pas de réponse définitive...et pour les trolls c'est trop tôt! :sleep:


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 13-06-2003 à 09:19:39    

DarkLord a écrit :


Déjà de un il y a une différence ENORME entre dire ce language est trop lent et ce language est trop lent pour tel type d'application.  Tu as le droit de détester ce que tu veux, chacun est libre. Mais balancer on le trouve trop lent comme un cheveu ds la soupe, ca ne fait pas très sérieux ...


Désolé, mais comme je parlais juste avant de faire un ray-tracer, cela me paraissait d'une évidence...

Reply

Marsh Posté le 13-06-2003 à 09:23:06    

Imhotep a écrit :


Désolé, mais comme je parlais juste avant de faire un ray-tracer, cela me paraissait d'une évidence...


 
pas vraiment non ;)


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 13-06-2003 à 09:24:28    

chrisbk a écrit :


mais a priori ce genre de question c l'ideal pour declencher une bonne guerre des familles :D


Oui c ce que je vois...  :lol: j
e me ramene pour poser une question interessante me semble-t-il et je me fais agressé...

Reply

Marsh Posté le 13-06-2003 à 09:25:02    

chrisbk a écrit :


 
(ca doit etre horrible a programmer un truc comme ca)
 


J'avais essayé de programmer un émulateur Z80 un jour. Le trouvant trop lent, j'avais décidé de passer d'un interpréteur à un recompilateur dynamique.
J'ai jamais réussi à faire tourner ce bordel correctement. Je pouvais obtenir des gains phénoménaux sur une écriture en mémoire, mais je me cassais la gueule sur un transfert de registre à registre (un comble quand même).
J'ai balancé ce projet, en me disant que mon émulateur Z80 finirait par tourner le jour ou les PC dépasseront 1 Ghz [:ddr555]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 13-06-2003 à 09:25:13    

DarkLord a écrit :


 
pas vraiment non ;)


autant pour moi alors  :)

Reply

Marsh Posté le 13-06-2003 à 09:26:06    

Imhotep a écrit :


Oui c ce que je vois...  :lol: j
e me ramene pour poser une question interessante me semble-t-il et je me fais agressé...


 
ben c normal hein, y'a des fans des java et toi tu debarques avec des "Java c'est tout lent :O" alors ils se veskent.
 
Note perso je suis pas fan non plus de java et je trouve que effectivement niveau velocite on a vu mieux (surtout pour de l'intensif (genre ton RT). Perso je choisirais C++ mais bon, si ca te broute :D)

Reply

Marsh Posté le 13-06-2003 à 09:28:45    

Harkonnen a écrit :


J'avais essayé de programmer un émulateur Z80 un jour. Le trouvant trop lent, j'avais décidé de passer d'un interpréteur à un recompilateur dynamique.
J'ai jamais réussi à faire tourner ce bordel correctement. Je pouvais obtenir des gains phénoménaux sur une écriture en mémoire, mais je me cassais la gueule sur un transfert de registre à registre (un comble quand même).
J'ai balancé ce projet, en me disant que mon émulateur Z80 finirait par tourner le jour ou les PC dépasseront 1 Ghz [:ddr555]


 
tiens, tu peux en dire plus ? Perso le truc que je capte pas c comment le CPU decode rapidement les opcodes [:ddr555]
 
(Perso j'ai vu comment c t deja la misere sur mon compilo "off line" ou je pouvais me permettre une bonne grosse table des symboles bien epaisses, alors faire ca en live ca me fait assez peur :D Deja la j'ai fait pas mal d'heure de debug et y doit encore avoir plein de cas ou le truc perds pieds, encore que la depuis qq tps c stable)


Message édité par chrisbk le 13-06-2003 à 09:29:13
Reply

Marsh Posté le 13-06-2003 à 09:30:32    

chrisbk a écrit :


 
ben c normal hein, y'a des fans des java et toi tu debarques avec des "Java c'est tout lent :O" alors ils se veskent.
 
Note perso je suis pas fan non plus de java et je trouve que effectivement niveau velocite on a vu mieux (surtout pour de l'intensif (genre ton RT). Perso je choisirais C++ mais bon, si ca te broute :D)


 [:plusun] En même temps il parait que la compilation Just in time ça marche bien, en même temps j'ai du  lire ça sur le site de sun alors bon...  :whistle:


---------------
Le Tyran
Reply

Marsh Posté le 13-06-2003 à 09:36:16    

C'te vieux troll de base :sarcastic:
Si tu veux un exemple de perfos, j'en ai un : j'avais un prog C (pas programmé par moi) qui faisait de la lecture dans des fichiers puis de l'insertion en base de données MySQL. Pour 4000 fichiers, il mettait 20 min environ sur un PIII 750. Avec la même config, j'ai développé le même type de soft. Résultat, plus de 15000 fichiers en 9 min.
 
A toi de voir l'utilisation que tu comptes faire de ton prog et la connaissance que tu as de l'algo et de chaque langage [: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.
Reply

Marsh Posté le 13-06-2003 à 09:39:48    

Taiche a écrit :

C'te vieux troll de base :sarcastic:
Si tu veux un exemple de perfos, j'en ai un : j'avais un prog C (pas programmé par moi) qui faisait de la lecture dans des fichiers puis de l'insertion en base de données MySQL. Pour 4000 fichiers, il mettait 20 min environ sur un PIII 750. Avec la même config, j'ai développé le même type de soft. Résultat, plus de 15000 fichiers en 9 min.
 
A toi de voir l'utilisation que tu comptes faire de ton prog et la connaissance que tu as de l'algo et de chaque langage [:spamafote]


 
disons que la ton exemple est assez enquiquinant parce que si il a fait ses IO comme un porc (genre je lis un caractere apres l'autre) c un peu normal :D
La par contre ca serait de l'intensif, du brut, bref du 100& cpu, donc j'imagine que meme en JIT y'a risque de handicap (J'imagine, mon experience perso c quand meme avec une vieille JVM (au mieux) ou PersonnalJava (au pire, ce truc la est revoltant) alors bon)
 
 

Reply

Marsh Posté le 13-06-2003 à 09:41:44    

chrisbk a écrit :


 
disons que la ton exemple est assez enquiquinant parce que si il a fait ses IO comme un porc (genre je lis un caractere apres l'autre) c un peu normal :D
La par contre ca serait de l'intensif, du brut, bref du 100& cpu, donc j'imagine que meme en JIT y'a risque de handicap (J'imagine, mon experience perso c quand meme avec une vieille JVM (au mieux) ou PersonnalJava (au pire, ce truc la est revoltant) alors bon)
 
 
 


 
Ca pourrait être probant si tu avais fait la version C.


---------------
Le Tyran
Reply

Marsh Posté le 13-06-2003 à 09:44:53    

LetoII a écrit :


 
Ca pourrait être probant si tu avais fait la version C.


 
A mon avis y'aurait gain, j'en suis quasiment sur (par analogie avec ce que j'avais deja fait avant). Je vais convertir la routine bouffant le plus de tps de Java->C (ca devrait pas etre bien dur) a l'occas

Reply

Marsh Posté le 13-06-2003 à 09:45:22    

chrisbk a écrit :


disons que la ton exemple est assez enquiquinant parce que si il a fait ses IO comme un porc (genre je lis un caractere apres l'autre) c un peu normal :D


Ui, j'imagine que le prog C était assez mal foutu [:ddr555]  Mais c'est surtout pour dire : si tu maîtrises mieux un langage qu'un autre, il vaut mieux s'orienter vers celui-ci plutôt que de regarder lequel a les meilleures perfs au millième de seconde près. Un algo propre et compréhensible sera souvent mieux codé dans le langage qu'on maîtrise le mieux [: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.
Reply

Marsh Posté le 13-06-2003 à 10:36:18    

Tu n'as qu'à utiliser Ada à la place : le compilateur génère du code natif et efficace, comme C++, et le langage est nettement plus rigoureux que C++ (même plus que Java).
 
Et puis c'est gratuit (aussi bien le compilo que la plupart des librairies. Et si tu veux réutiliser du code C++, c'est encore plus simple que l'interface native de Java).

Reply

Marsh Posté le 14-06-2003 à 02:25:31    

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 :)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed