Java et optimisation des ressources (mémoire)

Messages postés
30
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 février 2010
- - Dernière réponse :  Utilisateur anonyme - 18 avril 2012 à 20:32
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
Afficher la suite 

8 réponses

Messages postés
28
Date d'inscription
lundi 6 novembre 2000
Statut
Membre
Dernière intervention
25 juillet 2008
0
Merci
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
Commenter la réponse de cs_bokc
0
Merci
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.

Commenter la réponse de Utilisateur anonyme
Messages postés
30
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 février 2010
0
Merci
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 !
Commenter la réponse de cs_crazysetup
0
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

Commenter la réponse de Utilisateur anonyme
0
Merci
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().

Commenter la réponse de Utilisateur anonyme
0
Merci
Certaines méthodes comme le recyclage des instances sont superflues et inefficaces sur les JVM actuelles.

Commenter la réponse de Utilisateur anonyme
0
Merci
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.

Commenter la réponse de Utilisateur anonyme
0
Merci
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)
Commenter la réponse de Utilisateur anonyme