1 FONCTIONNEMENT MMOIRE DE LA JVM Julien Herr
- Slides: 25
1 FONCTIONNEMENT MÉMOIRE DE LA JVM Julien Herr IR 3 – 22/02/2008
Objectifs de l’exposé 2 Faire comprendre le fonctionnement de la mémoire en Java Initier à l'optimisation mémoire
Sommaire 3 Garbage Collecting Différentes zones mémoires Différents algo de collection Optimisation de la gestion mémoire Généralités Buts et principe de fonctionnement général Fonctionnement JVM Le principe Mauvaises pratiques Les outils Bibliographie Questions ? Optimisation
Garbage Collecting : Généralités 4 Garbage Collecting Différence du C Rappel Fonctionnement JVM sur malloc / free 2 fonctions principales pour la VM Exécuter le code Gérer la mémoire Objet collecté Un objet qui n'est plus référencé Vocabulaire : Ramasse miette, GC Optimisation
5 Garbage Collecting : Buts et fonctionnement général Garbage Collecting Fonctionnement JVM Optimisation 2 types d’objets Objets jeunes Objets vieux Plusieurs algorithmes de nettoyage Entres les 2 types d'objets Pour un même type d'objets Coupe tous les threads pendant le GC Déclanchement du GC lors du dépacement du seuil de mémoire utilisée
6 Fonctionnement JVM : Différentes zones mémoires Garbage Collecting Fonctionnement JVM Optimisation
7 Fonctionnement JVM : Différents algorithmes : Serial Collector Garbage Collecting Fonctionnement JVM Optimisation New Object Region Old Object Region Eden SS 1 SS 2 Old Eden SS 2 SS 1 Old Second GC Eden SS 2 SS 1 Old X GC Eden SS 2 SS 1 Old Premier GC
8 Fonctionnement JVM : Différents algorithmes : Mark & Sweep Compact Garbage Collecting Fonctionnement JVM Début Full GC Old Fin Full GC Old Optimisation
9 Fonctionnement JVM : Différents algorithmes : Parallel Collector Garbage Collecting Fonctionnement JVM Optimisation
10 Fonctionnement JVM : Différents algorithmes : Concurent Mark & Sweep Garbage Collecting Fonctionnement JVM Optimisation
Optimisation : Le principe 11 Garbage Collecting Fonctionnement JVM Stratégie par défaut de la JVM Algorithme de Garbage Collector Taille des zones mémoires Runtime Compiler (JIT) Dépendant de la machine et de l’OS Changeant suivant les versions Optimisation
Optimisation : Le principe 12 Garbage Collecting Optimisation Pourquoi optimiser ? Ne plus rencontrer l'erreur "Out of Memory Error" Défaut du perm size pour le code statique (ex : JSP) Throughput % Goal de temps passé à faire du GC Pause Goal Durée Fonctionnement JVM du GC Temps de GC proportionnel au nombre d'objet
Optimisation : Le principe 13 Garbage Collecting Fonctionnement JVM 3 types d'optimisations possibles Taille des zones mémoires Gérer l'intervalle de mémoire libre Type d'algorithme Evaluer ses besoins Faire des tests Empiriques Pas de recette magique Optimisation
14 Optimisation : Mauvaises pratiques Garbage Collecting Fonctionnement JVM System. gc() Doubler la quantité de mémoire Optimisation
Outils : Sortie GC 15 Garbage Collecting Fonctionnement JVM Optimisation Commande JVM -verbosegc : [GC 1667 K->1295 K(1984 K), 0. 0101756 secs] [GC 1807 K->1434 K(1984 K), 0. 0223998 secs] [GC 1946 K->1574 K(2112 K), 0. 0116185 secs] [Full GC 1574 K->1574 K(2112 K), 0. 0830561 secs] [GC 3454 K->2081 K(4672 K), 0. 0495951 secs] [GC 4001 K->2599 K(4672 K), 0. 0274256 secs] [GC 4519 K->3101 K(5056 K), 0. 0308995 secs] [Full GC 3101 K->3101 K(5056 K), 0. 1452472 secs] [GC 7039 K->4131 K(9452 K), 0. 0777414 secs] [GC 8227 K->5174 K(9452 K), 0. 0627538 secs] [GC 9270 K->6209 K(10348 K), 0. 1125570 secs]
Outils : GC Portal 16 Garbage Collecting Fonctionnement JVM Optimisation Vieux : 2004 JVM 1. 4 Lourdeur d'installation (scripts perl + sql) http: //java. sun. com/developer/technical. Articles /Programming/GCPortal/
Outils : GC Portal 17
Outils : Visual GC 18 Garbage Collecting Fonctionnement JVM Optimisation http: //management. netbeans. org/visualgc/inde x. html
Outils : Visual GC 19
Outils : JConsole 20 Garbage Collecting Fonctionnement JVM Optimisation Disponible dans le jdk Répertoire bin Depuis JDK 1. 5 http: //java. sun. com/developer/technical. Articles /J 2 SE/jconsole. html
Outils : JConsole 21 Garbage Collecting Fonctionnement JVM Optimisation
Optimisation : Le principe 22 Garbage Collecting Fonctionnement JVM Laisser faire la machine Attendre la stabilité Ajouter 15 % environ Tester Optimisation
Optimisation : Difficulté 23 Garbage Collecting Fonctionnement JVM Il faut de l'expérience Changements D'une version à l'autre D'un constructeur à l'autre Optimisation
Bibliographie 24 http: //www. javaperformancetuning. com/ http: //java. sun. com/docs/performance/ http: //java. sun. com/performance/reference/whi tepapers/tuning. html http: //java. sun. com/performance/reference/whi tepapers/6_performance. html
Questions ? 25
- Lied herr du bist mein leben
- Julien herr
- Jdk jvm
- Jvm vs clr
- Clr vs jvm
- Shadow and bonr
- Jvm internals
- Jvm vs clr
- Java bytecode
- Clojure lisp
- Jvm assembly
- Dalvik vs jvm
- Security promises of the jvm
- Sabina herr
- Akkusativ pronomen deutsch
- Herr du erforschest mich und kennest mich
- Maßnahmen gegen die gewalt bertolt brecht
- Who is herr liszt
- Herr dr. medic. (im tem.) adrian balint
- Groß bist du herr
- Psalm 24 der herr ist mein hirte
- Sehr geehrte frau dr.
- Herr winter geh hinter
- Herr killer uni passau
- Ich werde dich nicht verlassen bibel
- Herr winkler ich bin arbeitslos