Bonjour a vous,
J'ai des problemes lies a la performance d'un code en java. Et comme il a l'air d'y avoir des gens fort en java dans le coin...
On a des algos qui etaient ecrit en java et comme on en a besoin sur une machine ou il n'y a pas de jvm, le code a ete porte en C++ par une etudiante. Quand je dis que le code a ete porte, je veux dire que le code a ete copier coller et la syntaxe adapte pour que ca marche correctement en C++. Actuellement les deux codes sont fonctionnellement identiques (memes fichiers en output sur une grosse batterie de test).
Parcontre le code C++ va entre 10 et 40 plus vite que le code java. Je m'attendais a voir une difference, mais quand meme pas autant.
Quelques details technique:
J'utilise java 6 sorti tout droit du site de sun. Le code est de l'algorithmique sur les tableaux de double: des prefixsum, des binary search. A priori tres peu d'allocation/desallocation memoire. Un peu d'heritage pour implementer des variantes de certains algos. Le code C++ est compile en -O2 par g++ 4.jesaispasquoi
Qu'en pensez vous ? le facteur vient directement de la jvm ? J'ai oublier des options d'optimisation ? (y a t'il des options d'optimization ?) Mon etudiante est tellement fort que je devrais lui donner son diplome tout de suite ?
Merci