Fonctionnement M - PowerPoint PPT Presentation

About This Presentation
Title:

Fonctionnement M

Description:

Faire comprendre le fonctionnement de la m moire en Java. Initier l'optimisation m moire ... Changeant suivant les versions. 11. Optimisation : Le principe. Pourquoi ... – PowerPoint PPT presentation

Number of Views:42
Avg rating:3.0/5.0
Slides: 26
Provided by: wwwigmU
Category:

less

Transcript and Presenter's Notes

Title: Fonctionnement M


1
Fonctionnement MÉMOIRE de la JVM
  • Julien Herr
  • IR3 22/02/2008

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

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 ?

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

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

6
Fonctionnement JVM Différentes zones mémoires
7
Fonctionnement JVM Différents algorithmes
Serial Collector
New Object Region
Old Object Region
Eden
SS1
SS2
Old
PremierGC
Eden
SS1
SS2
Old
Eden
SS1
SS2
Old
SecondGC
Eden
SS1
SS2
Old
Eden
SS1
SS2
Old
X GC
8
Fonctionnement JVM Différents algorithmes
Mark Sweep Compact
Début FullGC
Old
Fin FullGC
Old
9
Fonctionnement JVM Différents algorithmes
Parallel Collector
10
Fonctionnement JVM Différents algorithmes
Concurent Mark Sweep
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

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

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

14
Optimisation Mauvaises pratiques
  • System.gc()
  • Doubler la quantité de mémoire

15
Outils Sortie GC
  • Commande JVM -verbosegc
  • GC 1667K-gt1295K(1984K), 0.0101756 secs
  • GC 1807K-gt1434K(1984K), 0.0223998 secs
  • GC 1946K-gt1574K(2112K), 0.0116185 secs
  • Full GC 1574K-gt1574K(2112K), 0.0830561 secs
  • GC 3454K-gt2081K(4672K), 0.0495951 secs
  • GC 4001K-gt2599K(4672K), 0.0274256 secs
  • GC 4519K-gt3101K(5056K), 0.0308995 secs
  • Full GC 3101K-gt3101K(5056K), 0.1452472 secs
  • GC 7039K-gt4131K(9452K), 0.0777414 secs
  • GC 8227K-gt5174K(9452K), 0.0627538 secs
  • GC 9270K-gt6209K(10348K), 0.1125570 secs

16
Outils GC Portal
  • Vieux 2004
  • JVM 1.4
  • Lourdeur d'installation (scripts perl sql)
  • http//java.sun.com/developer/technicalArticles/Pr
    ogramming/GCPortal/

17
Outils GC Portal
18
Outils Visual GC
  • http//management.netbeans.org/visualgc/index.html

19
Outils Visual GC
20
Outils JConsole
  • Disponible dans le jdk
  • Répertoire bin
  • Depuis JDK1.5
  • http//java.sun.com/developer/technicalArticles/J2
    SE/jconsole.html

21
Outils JConsole
22
Optimisation Le principe
  • Laisser faire la machine
  • Attendre la stabilité
  • Ajouter 15 environ
  • Tester

23
Optimisation Difficulté
  • Il faut de l'expérience
  • Changements
  • D'une version à l'autre
  • D'un constructeur à l'autre

24
Bibliographie
  • http//www.javaperformancetuning.com/
  • http//java.sun.com/docs/performance/
  • http//java.sun.com/performance/reference/whitepap
    ers/tuning.html
  • http//java.sun.com/performance/reference/whitepap
    ers/6_performance.html

25
Questions ?
Write a Comment
User Comments (0)
About PowerShow.com