La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

FONCTIONNEMENT MÉMOIRE DE LA JVM Julien Herr IR3 – 22/02/2008 1.

Présentations similaires


Présentation au sujet: "FONCTIONNEMENT MÉMOIRE DE LA JVM Julien Herr IR3 – 22/02/2008 1."— Transcription de la présentation:

1 FONCTIONNEMENT MÉMOIRE DE LA JVM Julien Herr IR3 – 22/02/2008 1

2 Objectifs de lexposé Faire comprendre le fonctionnement de la mémoire en Java Initier à l'optimisation mémoire 2

3 Sommaire Garbage Collecting Généralités Buts et principe de fonctionnement général Fonctionnement JVM Différentes zones mémoires Différents algo de collection Optimisation de la gestion mémoire Le principe Mauvaises pratiques Les outils Bibliographie Questions ? 3 Garbage CollectingFonctionnement JVMOptimisation

4 Garbage Collecting : Généralités Différence du C Rappel 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 4 Garbage CollectingFonctionnement JVMOptimisation

5 Garbage Collecting : Buts et fonctionnement général 2 types dobjets 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 5 Garbage CollectingFonctionnement JVMOptimisation

6 Fonctionnement JVM : Différentes zones mémoires 6 Garbage CollectingFonctionnement JVMOptimisation

7 Fonctionnement JVM : Différents algorithmes : Serial Collector 7 EdenSS1SS2Old EdenSS1SS2Old EdenSS1SS2Old EdenSS1SS2Old Premier GC Second GC EdenSS1SS2Old New Object RegionOld Object Region X GC Garbage CollectingFonctionnement JVMOptimisation

8 Fonctionnement JVM : Différents algorithmes : Mark & Sweep Compact 8 Old Début Full GC Fin Full GC Old Garbage CollectingFonctionnement JVMOptimisation

9 Fonctionnement JVM : Différents algorithmes : Parallel Collector 9 Garbage CollectingFonctionnement JVMOptimisation

10 Fonctionnement JVM : Différents algorithmes : Concurent Mark & Sweep 10 Garbage CollectingFonctionnement JVMOptimisation

11 Optimisation : Le principe 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 lOS Changeant suivant les versions 11 Garbage CollectingFonctionnement JVMOptimisation

12 Optimisation : Le principe 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 du GC Temps de GC proportionnel au nombre d'objet 12 Garbage CollectingFonctionnement JVMOptimisation

13 Optimisation : Le principe 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 13 Garbage CollectingFonctionnement JVMOptimisation

14 Optimisation : Mauvaises pratiques System.gc() Doubler la quantité de mémoire 14 Garbage CollectingFonctionnement JVMOptimisation

15 Outils : Sortie GC 15 Commande JVM -verbosegc : [GC 1667K->1295K(1984K), secs] [GC 1807K->1434K(1984K), secs] [GC 1946K->1574K(2112K), secs] [Full GC 1574K->1574K(2112K), secs] [GC 3454K->2081K(4672K), secs] [GC 4001K->2599K(4672K), secs] [GC 4519K->3101K(5056K), secs] [Full GC 3101K->3101K(5056K), secs] [GC 7039K->4131K(9452K), secs] [GC 8227K->5174K(9452K), secs] [GC 9270K->6209K(10348K), secs] Garbage CollectingFonctionnement JVMOptimisation

16 Outils : GC Portal Vieux : 2004 JVM 1.4 Lourdeur d'installation (scripts perl + sql) ogramming/GCPortal/ ogramming/GCPortal/ 16 Garbage CollectingFonctionnement JVMOptimisation

17 Outils : GC Portal 17

18 Outils : Visual GC ml ml 18 Garbage CollectingFonctionnement JVMOptimisation

19 Outils : Visual GC 19

20 Outils : JConsole Disponible dans le jdk Répertoire bin Depuis JDK1.5 SE/jconsole.html SE/jconsole.html 20 Garbage CollectingFonctionnement JVMOptimisation

21 Outils : JConsole 21 Garbage CollectingFonctionnement JVMOptimisation

22 Optimisation : Le principe Laisser faire la machine Attendre la stabilité Ajouter 15 % environ Tester 22 Garbage CollectingFonctionnement JVMOptimisation

23 Optimisation : Difficulté Il faut de l'expérience Changements D'une version à l'autre D'un constructeur à l'autre 23 Garbage CollectingFonctionnement JVMOptimisation

24 Bibliographie apers/tuning.html apers/tuning.html apers/6_performance.html apers/6_performance.html 24

25 Questions ? 25


Télécharger ppt "FONCTIONNEMENT MÉMOIRE DE LA JVM Julien Herr IR3 – 22/02/2008 1."

Présentations similaires


Annonces Google