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

  FORUM HardWare.fr
  Programmation
  C++

  [C++] Porter du Java en C++

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] Porter du Java en C++

n°810686
Fafix
Posté le 30-07-2004 à 09:04:48  profilanswer
 

Bonjour @ tous,
J´aimerais avoir votre opinion sur le travail nécessaire pour porter des sources Java en C++...
En gros, combien de temps faut il pour reprogrammer une application java qui a nécessité 1 Unité de Temps (disons, 1 année) pour être pensée, développée et débuggée.
J´ai lu que le rapport dans les temps de développement entre Java et C++ (en partant de 0) étaient de 2/3...
Merci !!!

mood
Publicité
Posté le 30-07-2004 à 09:04:48  profilanswer
 

n°810700
Taz
bisounours-codeur
Posté le 30-07-2004 à 09:17:17  profilanswer
 

ça dépend des tes capacités en C++, si elles sont faibles, il va te falloir beaucoup de temps pour obtenit la même qualité

n°810714
Fafix
Posté le 30-07-2004 à 09:28:27  profilanswer
 

Taz a écrit :

ça dépend des tes capacités en C++, si elles sont faibles, il va te falloir beaucoup de temps pour obtenit la même qualité


 
Ok mais en estimant que ce sont des équipes d´ingénieurs fortement qualifiés dans les 2 langages... ?
 
Merci!!!

n°810854
Taz
bisounours-codeur
Posté le 30-07-2004 à 10:48:19  profilanswer
 

ça dépend de ton appli. par exemple si tu utilises beaucoup de réflexion, va falloir repenser pas mal de choses.

n°811190
Ace17
Posté le 30-07-2004 à 14:41:07  profilanswer
 

La reflexion? Qu'est-ce que c'est?

n°811196
Taz
bisounours-codeur
Posté le 30-07-2004 à 14:49:30  profilanswer
 

l'autre nom de l'introspection

n°811215
gedeon
Posté le 30-07-2004 à 14:55:33  profilanswer
 

;) Taz t'es dur là !

n°811293
blackgodde​ss
vive le troll !
Posté le 30-07-2004 à 15:43:08  profilanswer
 

la reflexion => la capacité a connaitre (et modifier ?) la structure des objets a l'execution


---------------
-( BlackGoddess )-
n°811300
HelloWorld
Salut tout le monde!
Posté le 30-07-2004 à 15:44:55  profilanswer
 

Je suis pas sûr, j'avais lu vite, et peut être j'ai mal compris, mais il me semble bien avoir croisé un document (thèse je crois) où le gars avait recodé pas mal d'api Java en C++ et réalisé une sorte de petit framework pratiquement source compatible entre Java et C++. Le but était de comprarer les performances.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°811496
Taz
bisounours-codeur
Posté le 30-07-2004 à 18:50:51  profilanswer
 

d'ailleurs pourquoi recoder ?

mood
Publicité
Posté le 30-07-2004 à 18:50:51  profilanswer
 

n°811538
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 30-07-2004 à 19:50:15  profilanswer
 

Taz a écrit :

d'ailleurs pourquoi recoder ?

pour constater une fois pour toutes que Java est une brouette face au C++ :o


---------------
J'ai un string dans l'array (Paris Hilton)
n°811552
Taz
bisounours-codeur
Posté le 30-07-2004 à 20:17:24  profilanswer
 

nulle n'est besoin de preuve, c'est la définition de Java

n°811993
lunarnet76
Posté le 31-07-2004 à 16:37:31  profilanswer
 

Harkonnen a écrit :

pour constater une fois pour toutes que Java est une brouette face au C++ :o


euh je ne suis qu'un programmeur amateur débutant alors ca veut dire quoi? que java va moins loin que c++ ou le contraire? :pt1cable:  
 :bounce:  :bounce:  :bounce:


---------------
!jb!
n°812031
raytaller
Posté le 31-07-2004 à 18:39:57  profilanswer
 

je pense que ça veut surtout dire que java est plus lent, et c'est en effet dans sa définition puisqu'il est interprété par une machine virtuelle et non pas par ta propre machine, à toi, directement.

n°824797
hegros
Posté le 17-08-2004 à 10:22:56  profilanswer
 

je pense que ça veut surtout dire que java est plus lent, et c'est en effet dans sa définition puisqu'il est interprété par une machine virtuelle et non pas par ta propre machine, à toi, directement.
 
 
On peut compiler du java comme on compile du C++.

n°824818
Ace17
Posté le 17-08-2004 à 10:54:32  profilanswer
 

hegros a écrit :

On peut compiler du java comme on compile du C++.


Avec quoi?

n°824830
hegros
Posté le 17-08-2004 à 11:08:29  profilanswer
 

Il existe deja JIT ( just in time )  
la première fois qu'une instruction est exécutée, elle est compilée de sa forme Java en une forme que l'ordinateur peut comprendre nativement puis chaque fois que cette instruction est de nouveau rencontrée , elle est native et donc plus rapide. La performance est ainsi accrue de 10 à 20 fois

n°824859
El_gringo
Posté le 17-08-2004 à 11:23:20  profilanswer
 

On devrait tt les gros trolleurs. Surtout quand ils sont modérateurs ! :o

n°824935
HelloWorld
Salut tout le monde!
Posté le 17-08-2004 à 12:07:49  profilanswer
 

Citation :

La performance est ainsi accrue de 10 à 20 fois


Ca dépend de la vision que tu portes. On peut tout aussi bien dire que la lenteur est réduite de 10 à 20 fois... :-)
Alors hegros, on change de forum ? :hello:


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°824970
hegros
Posté le 17-08-2004 à 12:43:04  profilanswer
 

Citation :

La performance est ainsi accrue de 10 à 20 fois
Ca dépend de la vision que tu portes. On peut tout aussi bien dire que la lenteur est réduite de 10 à 20 fois... :-)
Alors hegros, on change de forum ? :hello:


 
Sans vouloir lancer de dbat java vs c++ car il y en a eu deja beaucoup. java vient corriger et améliorer des éléments du c++. On gagne d'un coté et on perd de l'autre. On peu pas etre gagnant partout  :na:  

n°824985
burgergold
5$? va chez l'diable!
Posté le 17-08-2004 à 13:04:41  profilanswer
 

jvois pas trop pk tu migrerais une application java en c++ si c'est celle-ci fonctionne
 
attendez d'avoir un réel besoin de revoir l'application de A à Z pour les fonctionnalités, et là vous en profiterai pour passer au C++ si c'est tjrs ce que vous souhaitez

n°824990
masklinn
í dag viðrar vel til loftárása
Posté le 17-08-2004 à 13:09:06  profilanswer
 

Burgergold a écrit :


attendez d'avoir un réel besoin de revoir l'application de A à Z pour les fonctionnalités, et là vous en profiterai pour passer au C++ si c'est tjrs ce que vous souhaitez


Il suffit d'avoir besoin de publier l'application sur des serveurs (ou d'avoir besoin d'augmenter les perfs/l'efficacité), les logiciels qui prennent 15-20Mo de RAM par instance alors qu'en C++ ils en prennent 2, quand il faut faire tourner 50 ou 60 instances par serveur le choix est vite fait [:itm]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°824992
burgergold
5$? va chez l'diable!
Posté le 17-08-2004 à 13:10:16  profilanswer
 

Masklinn a écrit :

Il suffit d'avoir besoin de publier l'application sur des serveurs (ou d'avoir besoin d'augmenter les perfs/l'efficacité), les logiciels qui prennent 15-20Mo de RAM par instance alors qu'en C++ ils en prennent 2, quand il faut faire tourner 50 ou 60 instances par serveur le choix est vite fait [:itm]


 
et nous au boulot les gens migre les applications C++ vers du Java :D
 
bon faut dire qu'on est vachement multi plateforme (OS/2, Win2k, AIX, Z/OS) alors c'est tout dans notre intérêt

n°824996
masklinn
í dag viðrar vel til loftárása
Posté le 17-08-2004 à 13:14:21  profilanswer
 

ben si les applications sont pas resource critical il n'y a pas spécialement de raison de les avoir en C/C++, surtout si on a besoin de multi plateforme
 
mais par exemple pour mon stage j'ai codé un petit moniteur de ressources, la première version était nickel mais en Python/wxPython -> 15Mo pour chaque instance, sur des serveurs applicatifs metaframe avec ~30 utilisateurs par serveur manges tes 600Mo de RAM pour une mini appli.
 
Je l'ai recodée en C++/wxWidgets, je suis descendu a ~2.5Mo de RAM, les serveurs vont bien mieux :)


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°825049
El_gringo
Posté le 17-08-2004 à 14:01:12  profilanswer
 

Ouais, enfin bref, le gars vient demander un renseignement. Il viens pas demander des conseils de stratégie pour sa boite. S'il veut migrer vers C++, c'est pas toi, en débarquant, sans aucun élément, qui pourra lui dire si oui ou non il doit faire ça !

n°825055
chrisbk
-
Posté le 17-08-2004 à 14:06:17  profilanswer
 

El_gringo a écrit :

Ouais, enfin bref, le gars vient demander un renseignement. Il viens pas demander des conseils de stratégie pour sa boite. S'il veut migrer vers C++, c'est pas toi, en débarquant, sans aucun élément, qui pourra lui dire si oui ou non il doit faire ça !


 
ce genre de réponses calmes et modérées devraient etre purement interdite. Si tout le monde faisait comme ca, je me demande bien ou on pourrait encore s'empoigner et se tataner sur les forums.

n°825069
masklinn
í dag viðrar vel til loftárása
Posté le 17-08-2004 à 14:18:51  profilanswer
 

El_gringo a écrit :

Ouais, enfin bref, le gars vient demander un renseignement. Il viens pas demander des conseils de stratégie pour sa boite. S'il veut migrer vers C++, c'est pas toi, en débarquant, sans aucun élément, qui pourra lui dire si oui ou non il doit faire ça !


la personne a posé sa question et a eu une/des réponses, qu'est ce qui empêche ensuite de débattre calmement de l'intérêt du portage C/C++ -> langages haut niveau et inversement en fonction des situations et dans un contexte global?


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°825087
El_gringo
Posté le 17-08-2004 à 14:33:15  profilanswer
 

Masklinn a écrit :

la personne a posé sa question et a eu une/des réponses, qu'est ce qui empêche ensuite de débattre calmement de l'intérêt du portage C/C++ -> langages haut niveau et inversement en fonction des situations et dans un contexte global?


 
Ben bien sur que c'est possible de débattre calmement.
A propos de ce que j'ai écrit au dessus, j'avais oublié de citer. Je répondais à Burgergold, quand il disait :

jvois pas trop pk tu migrerais une application java en c++ si c'est celle-ci fonctionne
 
attendez d'avoir un réel besoin de revoir l'application de A à Z pour les fonctionnalités, et là vous en profiterai pour passer au C++ si c'est tjrs ce que vous souhaitez


Message édité par El_gringo le 17-08-2004 à 14:33:47
n°825089
the real m​oins moins
Posté le 17-08-2004 à 14:34:17  profilanswer
 

Masklinn a écrit :

Il suffit d'avoir besoin de publier l'application sur des serveurs (ou d'avoir besoin d'augmenter les perfs/l'efficacité), les logiciels qui prennent 15-20Mo de RAM par instance alors qu'en C++ ils en prennent 2, quand il faut faire tourner 50 ou 60 instances par serveur le choix est vite fait [:itm]

en meme temps, faire tourner 50 instances du meme soft, faudrait ptet penser à fouetter le mec qui a architecturé le bordel [:itm]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°825114
masklinn
í dag viðrar vel til loftárása
Posté le 17-08-2004 à 14:50:56  profilanswer
 

the real moins moins a écrit :

en meme temps, faire tourner 50 instances du meme soft, faudrait ptet penser à fouetter le mec qui a architecturé le bordel [:itm]


mmm non
 
c'est un moniteur de ressource individuel qui sert à surveiller la place libre dans les répertoires personnels des utilisateurs relativement à un quota fixé (ce sont les utilisateurs qui doivent pouvoir voir leurs ressources hein, pas l'admin)
 
tu voudrais faire tourner ca comment avec un seul logiciel pour que chaque utilisateur voit la place sur SON disque toi?


Message édité par masklinn le 17-08-2004 à 14:51:40

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°828232
deltaden
Posté le 21-08-2004 à 02:38:07  profilanswer
 

hegros a écrit :

Il existe deja JIT ( just in time )  
la première fois qu'une instruction est exécutée, elle est compilée de sa forme Java en une forme que l'ordinateur peut comprendre nativement puis chaque fois que cette instruction est de nouveau rencontrée , elle est native et donc plus rapide. La performance est ainsi accrue de 10 à 20 fois


c'est déjà vieux les JIT. Ca fait longtemps que le Java n'est plus bêtement interprété.
Avec les JVM actuels, c'est beaucoup plus évolué, il ne compile en langage machine que les parties qui en valent la peine. Avec un énorme avantage par rapport à un compilo C++: il compile lors de l'exécution et connait donc les conditions réelles de fonctionnement (taille des structures de données...) et peut donc optimiser en conséquence (feedback-driven optimisation, loop unrolling et tous ces brols...).*
Il y a certaines applis qui sont plus rapides en Java qu'en C++, une fois que la JVM a eu le temps d'optimiser le code.
 
Par contre, les interfaces graphiques, ça restera toujours plus lent qu'en natif, ça on sait rien y faire...  [:proy]  
 
* dans certains cas, on peut gagner beaucoup. J'ai au moins un exemple, où en passant d'un simple JIT (jre 1.2 de Sun) à la Hotspot (jre 1.4), je diminuais le temps de calcul de 50 à 10 secondes de calculs... :)
Mais bon, j'ai un autre exemple où ça changait rien :D


Message édité par deltaden le 21-08-2004 à 02:39:15
n°828236
bjone
Insert booze to continue
Posté le 21-08-2004 à 02:54:04  profilanswer
 

deltaden a écrit :

c'est déjà vieux les JIT. Ca fait longtemps que le Java n'est plus bêtement interprété.
Avec les JVM actuels, c'est beaucoup plus évolué, il ne compile en langage machine que les parties qui en valent la peine. Avec un énorme avantage par rapport à un compilo C++: il compile lors de l'exécution et connait donc les conditions réelles de fonctionnement (taille des structures de données...) et peut donc optimiser en conséquence (feedback-driven optimisation, loop unrolling et tous ces brols...).*
Il y a certaines applis qui sont plus rapides en Java qu'en C++, une fois que la JVM a eu le temps d'optimiser le code.
 
Par contre, les interfaces graphiques, ça restera toujours plus lent qu'en natif, ça on sait rien y faire...  [:proy]  
 
* dans certains cas, on peut gagner beaucoup. J'ai au moins un exemple, où en passant d'un simple JIT (jre 1.2 de Sun) à la Hotspot (jre 1.4), je diminuais le temps de calcul de 50 à 10 secondes de calculs... :)
Mais bon, j'ai un autre exemple où ça changait rien :D


 
tout a fait (en fait j'en sais rien), mais si tu prends le compilo C++ Intel par exemple, tu peux faire le code machine est amélioré est fonction des retours du profiler.
 
donc avec un bon compilo C++, en termes de performances, tu as au strict minimum les mêmes performances que du Java, et l'analyse+optimisation est faite en offline, pas sur la machine cliente....

n°828238
deltaden
Posté le 21-08-2004 à 03:38:18  profilanswer
 

bjone a écrit :

tout a fait (en fait j'en sais rien), mais si tu prends le compilo C++ Intel par exemple, tu peux faire le code machine est amélioré est fonction des retours du profiler.
 
donc avec un bon compilo C++, en termes de performances, tu as au strict minimum les mêmes performances que du Java, et l'analyse+optimisation est faite en offline, pas sur la machine cliente....


oui, mais le compilo de la JVM, il améliore aussi en fonction des retours du profiler. Et si l'environnement d'exécution change, il peut le recompiler autrement.
 
Dans le futur, on pourrait même imaginer qu'il y ait des flags de compilation en fonction de la machine. C'est directement optimisé pour le CPU.
 
Evidement, ça prend du temps de calcul sur la machine cliente, c'est un désaventage.  
Mais Microsoft a l'air de s'orienter par là aussi avec son .NET  
Qui sait, Tout les programmes tournenront peut-être comme cela dans le futur ;)

n°829857
HelloWorld
Salut tout le monde!
Posté le 23-08-2004 à 17:00:35  profilanswer
 

Citation :

taille des structures de données


sizeof ?
Sous .Net, une des principales cause de gain entre un code JITé et un code compilé natif, c'est l'inlining possible au runtime ce qui le rend bien meilleur. Mais malgré ça ça reste plus lent, même si l'écart est de plus en plus faible.
http://www.vertigosoftware.com/Quake2FAQ.htm

Citation :

How is the performance of the managed version?
Initially, the managed version was faster than the native version when the default processor optimization setting /G5 (Pentium) was used. Changing the optimization setting to /G7 (Pentium 4 and Above) created a native version that runs around 15% faster then the managed version.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C++] Porter du Java en C++

 

Sujets relatifs
[Java][PHP][SQL] Debutant: Par quoi commencer??[java][mysql] probleme de connection
[Shell - Rsh - Java] Rendez moi la main !Fenetre non régulière en Java
[Java] Problème avec le type long[java][c]chargement d'une librairie .so
[Rationnal Rose][Java]Reverse de code source[java] afficher des graphs simples(ds applet ou application normale)
[java] pb de lecture de fichier texteJava Eclipse
Plus de sujets relatifs à : [C++] Porter du Java en C++


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