Fonctionnement MÉMOIRE de la JVM

Slides:



Advertisements
Présentations similaires
Speedup Prediction for Selective Compilation of Embedded Java Programs
Advertisements

Le moteur
1. Résumé 2 Présentation du créateur 3 Présentation du projet 4.
Est Ouest Sud 11 1 Nord 1 Howell 6½ et 7 tables 13 rondes – 26 étuis Laval Du Breuil Adstock, Québec Allez à 2 Est-Ouest Allez à 6 Est-Ouest 6 séries détuis.
Approche graphique du nombre dérivé
LIRMM 1 Journée Deuxièmes années Département Microélectronique LIRMM.
Classe : …………… Nom : …………………………………… Date : ………………..
Les numéros
1 1 Momentum. 2 2 Tout objet en mouvement continuera son mouvement tant que rien nentrave sa progression.
Est Ouest Sud 11 1 Nord 1 Individuel 13 joueurs 13 rondes - 26 étuis Laval Du Breuil Adstock, Québec Allez à 2 Est I séries détuis entre les tables.
Est Ouest Sud 11 1 Nord 1 Individuel 17 joueurs 12 rondes - 24 étuis Laval Du Breuil Adstock, Québec I série détuis entre chaque table 5 séries.
ACTIVITES Le calcul littéral (3).
Les Prepositions.
Serveurs web pour JSP et Servlets
Guillaume KRUMULA présente Exposés Système et Réseaux IR3 Mardi 5 Février 2008.
Joscelin OUDRY IR2000 année
Appropriation et extensions d'un logiciel libre de traitement de réseaux bayésiens complexes pour l’appréciation quantitative des risques alimentaires.
Performances 1 Évolution : Performance. Performances 2 Évolution : Mémoire.
A abstraction b assembleur c nombre binaire d bit e cache f UC g puce h compilateur i famille dordinateurs j contrôle k chemin de données l défaut m dé
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
Animation : Agir et s’exprimer avec son corps « Corps, mouvement et langage » Cycle 1 CPC EPS Amiens 2.
Projet .NET : Projet GEn A4RIL
La haute tour sombre 3 Des actions
II. Chaînage, SDD séquentielles
Principes de persistance dans les applications orienté objet
1 SERVICE PUBLIC DE LEMPLOI REGION ILE DE France Tableau de bord Juillet- Août 2007.
Projet de Compilation Manuel VACELET, Jean Pierre CAURIER, Gaël COLLE,
Chapitre 21 Collections Partie I Introduction Une collection : est un objet qui regroupe multiple éléments dans une unité. Une collection est.
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
SIDENA BTS IRIS Session 2008 CARME Arnaud.
Test bilan de calcul mental N°1 :
Développement d’application web
La Saint-Valentin Par Matt Maxwell.
Développer en C avec Eclipse Introduction Création d'un projet Ajout de fichiers Compilation Exécution Utiliser le débogueur Département dinformatique.
Installation des programmes
SPI - Serial Peripheral Interface
Programmation concurrente
L’étrange ballet de la planète MARS
Gilbert TOUT NEST QUE CALCUL Vous vous êtes certainement déjà demandé ce que voulait dire « se donner à 100% » ?
Notre calendrier français MARS 2014
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 1 : Introduction.
Annexe 1 VISITE SUR
Quelle heure est-il ??. THE TIME: OCLOCK IL EST HEURE IL EST + + HEURES etc.
COURS DE PROGRAMMATION ORIENTEE OBJET :
C'est pour bientôt.....
Veuillez trouver ci-joint
22 Web Platform Installer pour faciliter la mise en œuvre de votre plateforme Web 9 Février 2010 Alban OlierLaurent Bonnet
Java vs. C++ Pierre-Yves ALIZON – Ingénieurs 2000.
Échantillonnage (STT-2000) Section 2 Tirage de Bernoulli (plan BE). Version: 4 septembre 2003.
2 Développer, tester et déployer un site web avec WebMatrix (RIA101) Christine Dubois 9 février 2011.
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
1 Modèle pédagogique d’un système d’apprentissage (SA)
Conférence du groupe X- Environnement, 24 avril 2013 L’impact écologique des infrastructures numériques Cédric Gossart Institut Mines-Télécom Télécom Ecole.
1. Présentation générale du système
10 paires -. 9 séries de 3 étuis ( n° 1 à 27 ) 9 positions à jouer 5 tables Réalisé par M..Chardon.
CALENDRIER-PLAYBOY 2020.
Outil de gestion des cartes grises
USAM BRIDGE H O W E L L -CLASSIQUE
9 paires séries de 3 étuis ( n° 1 à 27 )
Quel est l’intérêt d’utiliser le diagramme de Gantt dans la démarche de projet A partir d’un exemple concret, nous allons pouvoir exploiter plusieurs parties.
Dr. KHERRI Abdenacer 2014/ ECOLE DES HAUTES ETUDES COMMERCIALES.
Les Chiffres Prêts?
Relevez le numéro de votre logo préféré et adressez-le à : En cas d’hésitation, vous pouvez choisir jusqu’à 3 logos. Seront pris.
Transcription de la présentation:

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

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

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 ?

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

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

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

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

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

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

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

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

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

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

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

Outils : Sortie GC Commande JVM -verbosegc : Garbage Collecting Fonctionnement JVM Optimisation Commande JVM -verbosegc : [GC 1667K->1295K(1984K), 0.0101756 secs] [GC 1807K->1434K(1984K), 0.0223998 secs] [GC 1946K->1574K(2112K), 0.0116185 secs] [Full GC 1574K->1574K(2112K), 0.0830561 secs] [GC 3454K->2081K(4672K), 0.0495951 secs] [GC 4001K->2599K(4672K), 0.0274256 secs] [GC 4519K->3101K(5056K), 0.0308995 secs] [Full GC 3101K->3101K(5056K), 0.1452472 secs] [GC 7039K->4131K(9452K), 0.0777414 secs] [GC 8227K->5174K(9452K), 0.0627538 secs] [GC 9270K->6209K(10348K), 0.1125570 secs]

Outils : GC Portal Vieux : 2004 JVM 1.4 Garbage Collecting Fonctionnement JVM Optimisation Vieux : 2004 JVM 1.4 Lourdeur d'installation (scripts perl + sql) http://java.sun.com/developer/technicalArticles/Pr ogramming/GCPortal/

Outils : GC Portal

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

Outils : Visual GC

Outils : JConsole Disponible dans le jdk Garbage Collecting Fonctionnement JVM Optimisation Disponible dans le jdk Répertoire bin Depuis JDK1.5 http://java.sun.com/developer/technicalArticles/J2 SE/jconsole.html

Outils : JConsole Garbage Collecting Fonctionnement JVM Optimisation

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

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

Bibliographie http://www.javaperformancetuning.com/ http://java.sun.com/docs/performance/ http://java.sun.com/performance/reference/whitep apers/tuning.html http://java.sun.com/performance/reference/whitep apers/6_performance.html

Questions ?