Java et optimisation des ressources (mémoire)

Signaler
Messages postés
30
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 février 2010
-
 Utilisateur anonyme -
Salut,
J'ai repris un programme ( un projet des étudiants de l'année dernière ) et parmi les tâches que je dois effectuer : optimiser les ressources, je dois faire en sorte que mon application consomme moins moins de mémoire.
comment faire ?
merci

8 réponses

Messages postés
28
Date d'inscription
lundi 6 novembre 2000
Statut
Membre
Dernière intervention
25 juillet 2008

Salut,

Regarde ce lien http://www.club-java.com/Public/JavaTechno/Fichiers/JAVA/Optimiser.htm.
Il donne pas mal d'astuce pour optimiser son code.

BokC

Bonjour

Pour mon jeu, je suis passé de 64 à 17 Mo de mémoire utilisée et de 0.5 à 8 FPS sur des machines pourries alors fais moi signe si tu veux quelques pistes.

Prends garde, certaines optimisations sont très sensibles à la version de Java que tu utilises. Ne réduis pas la lisibilité du code sous prétexte que c'est sensé aller plus vite. Avant de penser aux micro-optimisations, optimise tes algorithmes. Il ne faut surtout pas prendre le problème à l'envers. Les micro-optimisations doivent être faites à la fin et normalement, ça ne te fait pas gagner grand chose, la JVM fait bien son boulot.

Messages postés
30
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 février 2010

Merci Bokc pour l'article, j'ai compris pas mal de trucs.
gouessej, quant tu parles de micro optimisation qu'est ce que tu veux dire par la ?
mon projet c'est un scanner de ports qui lance 150 processus afin de bien faire son boulot,
ya t'il moyen de réduire le nombre de processus ?
si tu veux je peu te filer mon code pour que t'y jette un coup d'oeil ! ca sera gentil de m'aider à trouver un point de départ !
Merci !

Si ce n'est pas fait, tu peux utiliser un ExecutorService ou un truc dans le genre. Cela permet de répartir les tâches à faire sur les différents noyaux du processeur.

La micro optimisation c'est ça :
http://dept-info.labri.fr/~strandh/Teaching/MTP/Common/Book/HTML/node220.html


De plus, je ne suis pas d'accord avec certaines des consignes données par le lien qu'a filé bokc notamment sur l'utilisation de finalize().


Certaines méthodes comme le recyclage des instances sont superflues et inefficaces sur les JVM actuelles.


Le lien date d'avant l'apparation des types génériques donc ce qui est dit sur Vector n'est plus tout à fait vrai.


Bonsoir

C'est exagéré de parler de "drame" comme le fichier eclipse.ini dont vous parlez dispose de réglages permettant notamment d'augmenter la taille maximale du tas mémoire de Java (Java memory heap), il est conçu pour gérer ce genre de cas. De plus, je n'ai pas eu besoin de changer ce genre de réglage sur des projets de plusieurs millions de lignes de code composés de plusieurs dizaines de fragments sauf quand j'ai installé le plugin Findbugs. En conséquence, je vous conseille vivement de ne pas faire croire aux débutants que ces cas de figures sont courants car c'est complètement faux.

Enfin, votre suggestion est hors sujet puisqu'il s'agit de réduire la consommation mémoire d'un programme, pas d'augmenter la mémoire disponible pour Eclipse. D'ailleurs, une telle augmentation n'est pas une optimisation.




T.U.E.R (First Person Shooter créé par Julien Gouesse)