Java et optimisation des ressources (mémoire)

cs_crazysetup Messages postés 30 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 février 2010 - 21 avril 2008 à 11:56
 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

8 réponses

cs_bokc Messages postés 28 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 25 juillet 2008
21 avril 2008 à 12:41
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
0
Utilisateur anonyme
21 avril 2008 à 12:55
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.

0
cs_crazysetup Messages postés 30 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 février 2010
21 avril 2008 à 13:04
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 !
0
Utilisateur anonyme
21 avril 2008 à 18:52
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

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
21 avril 2008 à 18:54
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().

0
Utilisateur anonyme
21 avril 2008 à 19:00
Certaines méthodes comme le recyclage des instances sont superflues et inefficaces sur les JVM actuelles.

0
Utilisateur anonyme
21 avril 2008 à 19:02
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.

0
Utilisateur anonyme
18 avril 2012 à 20:32
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)
0