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

Présentations similaires


Présentation au sujet: "Fonctionnement MÉMOIRE de la JVM"— Transcription de la présentation:

1 Fonctionnement MÉMOIRE de la JVM
Pourquoi le sujet -> encore jamais vu -> sujet principale de la dernière section pro Julien Herr IR3 – 22/02/2008

2 Objectifs de l’exposé Faire comprendre le fonctionnement de la mémoire en Java Initier à l'optimisation mémoire Objectif Prise de conscience sur l’importance de la gestion mémoire en java Comprendre comment ca marche (outils jvm) : utilisateur -> ingénieur Notion sur la procédure d’optimisation

3 Sommaire Garbage Collecting Fonctionnement JVM
Optimisation 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 ?

4 Garbage Collecting : Généralités
Fonctionnement JVM Optimisation 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 Petits rappels : Java = gestion de mémoire auto C = gestion à la main Gérer la mémoire = allouer à l’OS la mémoire, gérer ses objets en mémoire, les effacer

5 Garbage Collecting : Buts et fonctionnement général
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 Objets jeunes = qui viennent d’être créés Objets vieux = qui ont une certaine durée de vie dans l’application Seuil = % de mémoire libre / mémoire utilisée

6 Fonctionnement JVM : Différentes zones mémoires
Garbage Collecting Fonctionnement JVM Optimisation Virtual = évolue au fil du temps

7 Fonctionnement JVM : Différents algorithmes : Serial Collector
Garbage Collecting Fonctionnement JVM Optimisation New Object Region Old Object Region Eden SS1 SS2 Old Premier GC Eden SS1 SS2 Old Eden SS2 SS1 Old Second GC Eden SS2 SS1 Old Eden SS2 SS1 Old X GC

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

9 Fonctionnement JVM : Différents algorithmes : Parallel Collector
Garbage Collecting Fonctionnement JVM Optimisation Utilisé dans la zone jeune

10 Fonctionnement JVM : Différents algorithmes : Concurent Mark & Sweep
Garbage Collecting Fonctionnement JVM Optimisation Utilisé dans la zone old Tout au long de l’exécution de l’application Idéal pour pseudo temps réel (voip = court temps de pause, environ 300ms) Lourd -> grosse structure de liste chainée

11 Optimisation : Le principe
Garbage Collecting Fonctionnement JVM Optimisation 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

12 Optimisation : Le principe
Garbage Collecting Fonctionnement JVM 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 du GC Temps de GC proportionnel au nombre d'objet Besoin de temps de réponse optimal Temps de réponse actuels trop longs

13 Optimisation : Le principe
Garbage Collecting Fonctionnement JVM Optimisation 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

14 Optimisation : Mauvaises pratiques
Garbage Collecting Fonctionnement JVM Optimisation System.gc() Doubler la quantité de mémoire

15 Outils : Sortie GC Commande JVM -verbosegc :
Garbage Collecting Fonctionnement JVM Optimisation 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]

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

17 Outils : GC Portal

18 Outils : Visual GC http://management.netbeans.org/visualgc/index.ht ml
Garbage Collecting Fonctionnement JVM Optimisation ml

19 Outils : Visual GC

20 Outils : JConsole Disponible dans le jdk
Garbage Collecting Fonctionnement JVM Optimisation Disponible dans le jdk Répertoire bin Depuis JDK1.5 SE/jconsole.html

21 Outils : JConsole Garbage Collecting Fonctionnement JVM Optimisation

22 Optimisation : Le principe
Garbage Collecting Fonctionnement JVM Optimisation Laisser faire la machine Attendre la stabilité Ajouter 15 % environ Tester

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

24 Bibliographie http://www.javaperformancetuning.com/
apers/tuning.html apers/6_performance.html

25 Questions ?


Télécharger ppt "Fonctionnement MÉMOIRE de la JVM"

Présentations similaires


Annonces Google