5.FreshMinutes.IT – Java & IT

5 minutes pour consolider ses connaissances en Java et dans les Nouvelles Technos.
  • Accueil
  • À propos
  • Contact, Twitter, Tumblr & Buzz

JVM Tuning – Optimiser les performances de la machine virtuelle

Eric Vialle | Vendredi 16 mai 2008 | 8:20


Afin de gagner en performance, il est possible de modifier certains parametres de la JVM. Cela réside principalement dans la gestion de sa mémoire. Nous allons voir ici quelques options afin d’améliorer la vitesse d’exécution ou la réactivité de vos applications.

Optimiser l’espace de la Heap Memory

Java stocke les différents objets dans une mémoire d’allocation dynamique dénommé Heap Memory. Il est possible de prérégler la taille de cette mémoire. Donner suffisasement de place à vos objets vous évitera des appels récurrents au Garbage Collector.

Lors du lancement de la machine virtuelle java: (Java Virtual Machine), vous pouvez utilisez ces options suivantes:

java -Xms256M MonApp

lancera MonApp au moins 256Mo d’espace pour la Heap Memory

java -Xmx512M MonApp

donnera pour instruction de ne pas dépasser 512Mo d’espace pour la Heap Memory

java -Xmn128M MonApp

donnera pour instruction de ne pas dépasser 128Mo d’espace pour l’espace Young Generation. L’espace Young Generation représente la partie de l’espace mémoire où Java stocke les objets les plus récents.

La mémoire Young Génération doit être inférieure à la mémoire minimale. Sur une JVM 32 bits, la mémoire maximale est limitée à 4Go, excepté sous Windows où elle se situe aux alentours d’1.4Go. Avec une JVM 64 bits, reportez vous aux données de Sun.

Il est tout à fait possible de conjuguer l’utilisation de ces différentes options lors du lancement de la JVM -Xmx -Xmn -Xms

Mode de la JVM

La machine virtuelle peut tourner en deux modes: soit client (par défaut) soit server.

java -client MonApp

ou

java MonApp

le mode client est à privilégier si vous souhaitez que votre application démarre rapidement. Utilisez uniquement pour des applications à courte durée de vie ou simple.

java -server MonApp

Le mode server offre des performances optimales. Mais son démarrage est plus lent que le mode client. A privilegier pour des applications lourdes et/ou de moyennes/longues durées.

Monitoring

Afin de s’assurer que les nouveaux paramètres n’entrainent pas de régression dans ses performances. Il est conseillé de monitorer les performances de celle-ci et de comparer les différents réglages.

Afin de tracer le Garbage Collector, vous pouvez utiliser l’option suivante lors du lancement de la JVM

java -verbose:gc MonApp

Cette instruction affichera les faits et gestes du Garbage Collector.
[GC 50650K->21808K(76868K), 0.0478645 secs] >
[GC 51197K->22305K(76868K), 0.0478645 secs]
[GC 52293K->23867K(76868K), 0.0478645 secs]
[Full GC 52970K->1690K(76868K), 0.54789968 secs]

Sun propose des outils plus puis puissants telle la technologie Vmstat et son outil jconsole.

A lire:

  • http://java.sun.com/performance/reference/whitepapers/tuning.html
  • http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp
  • http://www.javaperformancetuning.com/tips/index.shtml
  • Tuning Garbage Collection
  • Garbage Collector – Développez.com


Catégories
J2SE, Java, Java EE
Tags
Java, JVM, monitoring, optimisation, performance, tuning
Flux rss des commentaires
Flux rss des commentaires
Trackback
Trackback

« Optimiser ses chaines de caractères Performances des Getters/Setters pour les JavaBeans »

Leave a Reply

Cliquez ici pour annuler la réponse.

Articles récents

  • Push & communications asynchrones sur iOS (iPhone/iPad)
  • Optimiser le temps de chargement pour le web mobile avec iPhone, jQTouch, Struts 2 et Tomcat
  • La philosophie du Domain Driven Design User Group et l’état des lieux * Users Group en Février 2010
  • Introduction au NoSQL (et de Redis) ou le compte rendu du NoSQL User Group Paris de Février 2010
  • Gérer le Cache-Control HTTP dans une application Web Java EE avec Tomcat
  • Compiler son code? “It’s so 2000s” ou un apercu de Play et JRebel
  • Le blog change d’adresse
  • Le Paris JUG a fêté ses 2 ans: compte-rendu

Navigation

  • Actualités Flux pour tous les articles classés dans Actualités
  • Architecture IT Flux pour tous les articles classés dans Architecture IT
  • Base de données Flux pour tous les articles classés dans Base de données
  • Java Flux pour tous les articles classés dans Java
    • Dévelopement Tips Flux pour tous les articles classés dans Dévelopement Tips
    • EDI Flux pour tous les articles classés dans EDI
    • J2ME Flux pour tous les articles classés dans J2ME
    • J2SE Flux pour tous les articles classés dans J2SE
    • Java EE Flux pour tous les articles classés dans Java EE
    • Tutoriel Flux pour tous les articles classés dans Tutoriel
  • Non classé Flux pour tous les articles classés dans Non classé
  • NoSQL Flux pour tous les articles classés dans NoSQL

Promo

Mots Clefs

adobe apache application web Base de données benchmark bugs c# checkstyle dérivation eclipse find bugs findbugs flex framework play google gzip http iPhone jar Java Java User Group java web start JVM microsoft mysql object objet open source optimisation oracle performance plugin pmd polymorphisme qualité recrutement rich internet application serveur silverlight struts struts 2 sun test Tomcat web

WP Cumulus Flash tag cloud by Roy Tanck and Luke Morton requires Flash Player 9 or better.

Twitter

  • J'ai testé OnLive Games sur mon Mac en Wifi: vraiment impressionnant que les possibilités du cloud gaming 2011-01-17
  • More updates...

Livres Pour Aller Plus Loin…

Blogoliste

  • Berthou.com
  • Le blog de hugu
  • PHP – Le Blog de Fatiha
  • techno.blog(java4it)
Get Adobe Flash playerPlugin by wpburn.com wordpress themes
rss Flux rss des commentaires valid xhtml 1.1 design by jide powered by Wordpress get firefox