SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Hassan BOUMARSEL
Architecte Oracle Middleware
hboumarsel@anasys.fr
Juin 2013
ANASYS
JAVA VIRTUAL MACHINE
Notions de base
© ANASYS
Sommaire
Le langage Java,
Java Virtual Machine (JVM),
Introduction à la gestion de la mémoire Java,
Introduction au Garbage Collector,
© ANASYS 2Java Virtual Machine : Notions de base
Java : Le langage
Java est un langage de haut niveau, orienté objet.
Java est à la fois interprété et compilé.
Un langage simple : Java assure la gestion automatique de la
mémoire.
Java permet de créer des applications distribuées :
 Portables et indépendantes de la plateforme,
 Robustes et sécurisées,
 Dynamiques et Multithreads,
Java est largement utilisé pour le développement des
applications web, d'entreprises, et mobiles.
 “Write it once and run it anywhere.”
© ANASYS 3Java Virtual Machine : Notions de base
Java Virtual Machine (JVM)
La JVM est la machine virtuelle de Java.
Un environnement d'exécution pour les applications Java.
Mais pas seulement : Scala, Groovy, Jython…
Elle assure l'indépendance du matériel et du système
d'exploitation lors de l'exécution des applications.
La machine virtuelle permet notamment :
 l'interprétation du bytecode.
 l'interaction avec le système d'exploitation.
 la gestion de la mémoire grâce au Garbage collector (GC).
© ANASYS 4Java Virtual Machine : Notions de base
© ANASYS 5
Java Virtual Machine (Suite)
Java Virtual Machine : Notions de base
La mémoire de la JVM est divisée en plusieurs zones :
Java Virtual Machine (Suite - 2)
© ANASYS 6Java Virtual Machine : Notions de base
Vue détaillée du contenu de la mémoire dans la JVM :
Java Virtual Machine (Suite - 3)
© ANASYS 7Java Virtual Machine : Notions de base
Java Heap
Une zone mémoire partagée par tous les threads de la JVM :
Elle stocke toutes les instances des objets créés.
Toutes les allocations mémoires pour créer les instances de
classes et les tableaux (Même les tableaux de types primitifs)
sont stockés dans le Heap.
La libération de cet espace mémoire est effectuée par un
mécanisme interne à la JVM : Le Garbage Collector.
Si la taille du Heap ne permet plus d’allouer de la mémoire
pour une nouvelle allocation d’objet : Une exception de type
OutOfMemoryError est levée.
© ANASYS 8Java Virtual Machine : Notions de base
Le Garbage Collector
Un mécanisme de recyclage de la mémoire préalablement
allouée et qui n’est plus inutilisée.
Les « Garbage collections » sont effectuées automatiquement
par la machine virtuelle Java. Les développeurs n'ont pas
besoin de libérer explicitement les objets inutilisés.
Le principe de fonctionnement du Garbage Collector est assez
simple :
 Déterminer quels sont les objets qui ne sont plus utilisés par le
programme,
 Récupérer l'espace mémoire consommé par ces objets.
Les algorithmes d'implémentation du Garbage Collector sont
définis et conçus par le fournisseur de la JVM.
© ANASYS 9Java Virtual Machine : Notions de base
Les principales implémentations de la JVM
Il existe une multitude de JVM, propriétaires et Open-sources.
Les JVM les plus utilisées :
 Oracle (Ex Sun) HotSpot JVM,
 Oracle JRockit JVM,
 OpenJDK
 IBM JVM,
 HP JVM,
 SAP JVM,
 Apache Harmony,
 Dalvik virtual machine (Android),
© ANASYS 10Java Virtual Machine : Notions de base
Introduction au Tuning de la JVM
Le Tuning de la JVM consiste, en général, à :
 Modifier les paramètres de la mémoire,
 Choisir l’algorithme du Garbage Collector.
 Modifier la taille de la stack.
 Optimiser le chargement des classes (Class Loading).
 Optimiser les options de compilation.
 Les performances des applications Java peuvent
considérablement accroître avec une bonne configuration de la
JVM…
© ANASYS 11Java Virtual Machine : Notions de base
Questions ?
© ANASYS 12Java Virtual Machine : Notions de base
© ANASYS 13Java Virtual Machine : Notions de base

Weitere ähnliche Inhalte

Ähnlich wie Java virtual machine : Notions de base

Java uik-chap1-intro java
Java uik-chap1-intro javaJava uik-chap1-intro java
Java uik-chap1-intro javaAmel Morchdi
 
Gwt oxiane-novae-lr
Gwt oxiane-novae-lrGwt oxiane-novae-lr
Gwt oxiane-novae-lroxmed
 
I le langage java d'una manière avancée introduction
I  le langage java d'una manière avancée introductionI  le langage java d'una manière avancée introduction
I le langage java d'una manière avancée introductionsabrine_hamdi
 
0251-formation-java-programmation-objet.pdf
0251-formation-java-programmation-objet.pdf0251-formation-java-programmation-objet.pdf
0251-formation-java-programmation-objet.pdfOmbotimbe Salifou
 
Run java vs ruby
Run java vs rubyRun java vs ruby
Run java vs rubypinguin666
 
International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)IJERD Editor
 
Perf ug comment ne plus rajouter de ram a vos jvm sans savoir pourquoi
Perf ug   comment ne plus rajouter de ram a vos jvm sans savoir pourquoiPerf ug   comment ne plus rajouter de ram a vos jvm sans savoir pourquoi
Perf ug comment ne plus rajouter de ram a vos jvm sans savoir pourquoipkernevez
 
Java uik-chap2-dev java
Java uik-chap2-dev javaJava uik-chap2-dev java
Java uik-chap2-dev javaAmel Morchdi
 
Architecture java j2 ee a partager
Architecture java j2 ee a partagerArchitecture java j2 ee a partager
Architecture java j2 ee a partageraliagadir
 

Ähnlich wie Java virtual machine : Notions de base (20)

Java uik-chap1-intro java
Java uik-chap1-intro javaJava uik-chap1-intro java
Java uik-chap1-intro java
 
JAVA Chapitre2
JAVA Chapitre2JAVA Chapitre2
JAVA Chapitre2
 
Présentation1
Présentation1Présentation1
Présentation1
 
Gwt oxiane-novae-lr
Gwt oxiane-novae-lrGwt oxiane-novae-lr
Gwt oxiane-novae-lr
 
I le langage java d'una manière avancée introduction
I  le langage java d'una manière avancée introductionI  le langage java d'una manière avancée introduction
I le langage java d'una manière avancée introduction
 
OpenMQ François Ostyn
OpenMQ François OstynOpenMQ François Ostyn
OpenMQ François Ostyn
 
Javaoop
JavaoopJavaoop
Javaoop
 
0251-formation-java-programmation-objet.pdf
0251-formation-java-programmation-objet.pdf0251-formation-java-programmation-objet.pdf
0251-formation-java-programmation-objet.pdf
 
Run java vs ruby
Run java vs rubyRun java vs ruby
Run java vs ruby
 
International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)
 
Perf ug comment ne plus rajouter de ram a vos jvm sans savoir pourquoi
Perf ug   comment ne plus rajouter de ram a vos jvm sans savoir pourquoiPerf ug   comment ne plus rajouter de ram a vos jvm sans savoir pourquoi
Perf ug comment ne plus rajouter de ram a vos jvm sans savoir pourquoi
 
Introduction JavaEE
Introduction JavaEEIntroduction JavaEE
Introduction JavaEE
 
Chap 02 poo en java
Chap 02 poo en javaChap 02 poo en java
Chap 02 poo en java
 
Java uik-chap2-dev java
Java uik-chap2-dev javaJava uik-chap2-dev java
Java uik-chap2-dev java
 
Maven et industrialisation du logiciel
Maven et industrialisation du logicielMaven et industrialisation du logiciel
Maven et industrialisation du logiciel
 
Architecture java j2 ee a partager
Architecture java j2 ee a partagerArchitecture java j2 ee a partager
Architecture java j2 ee a partager
 
The Future of Javascript
The Future of JavascriptThe Future of Javascript
The Future of Javascript
 
The future of JavaScript
The future of JavaScriptThe future of JavaScript
The future of JavaScript
 
gradle_nantesjug
gradle_nantesjuggradle_nantesjug
gradle_nantesjug
 
Rapport tp1 j2ee
Rapport tp1 j2eeRapport tp1 j2ee
Rapport tp1 j2ee
 

Java virtual machine : Notions de base

  • 1. Hassan BOUMARSEL Architecte Oracle Middleware hboumarsel@anasys.fr Juin 2013 ANASYS JAVA VIRTUAL MACHINE Notions de base © ANASYS
  • 2. Sommaire Le langage Java, Java Virtual Machine (JVM), Introduction à la gestion de la mémoire Java, Introduction au Garbage Collector, © ANASYS 2Java Virtual Machine : Notions de base
  • 3. Java : Le langage Java est un langage de haut niveau, orienté objet. Java est à la fois interprété et compilé. Un langage simple : Java assure la gestion automatique de la mémoire. Java permet de créer des applications distribuées :  Portables et indépendantes de la plateforme,  Robustes et sécurisées,  Dynamiques et Multithreads, Java est largement utilisé pour le développement des applications web, d'entreprises, et mobiles.  “Write it once and run it anywhere.” © ANASYS 3Java Virtual Machine : Notions de base
  • 4. Java Virtual Machine (JVM) La JVM est la machine virtuelle de Java. Un environnement d'exécution pour les applications Java. Mais pas seulement : Scala, Groovy, Jython… Elle assure l'indépendance du matériel et du système d'exploitation lors de l'exécution des applications. La machine virtuelle permet notamment :  l'interprétation du bytecode.  l'interaction avec le système d'exploitation.  la gestion de la mémoire grâce au Garbage collector (GC). © ANASYS 4Java Virtual Machine : Notions de base
  • 5. © ANASYS 5 Java Virtual Machine (Suite) Java Virtual Machine : Notions de base
  • 6. La mémoire de la JVM est divisée en plusieurs zones : Java Virtual Machine (Suite - 2) © ANASYS 6Java Virtual Machine : Notions de base
  • 7. Vue détaillée du contenu de la mémoire dans la JVM : Java Virtual Machine (Suite - 3) © ANASYS 7Java Virtual Machine : Notions de base
  • 8. Java Heap Une zone mémoire partagée par tous les threads de la JVM : Elle stocke toutes les instances des objets créés. Toutes les allocations mémoires pour créer les instances de classes et les tableaux (Même les tableaux de types primitifs) sont stockés dans le Heap. La libération de cet espace mémoire est effectuée par un mécanisme interne à la JVM : Le Garbage Collector. Si la taille du Heap ne permet plus d’allouer de la mémoire pour une nouvelle allocation d’objet : Une exception de type OutOfMemoryError est levée. © ANASYS 8Java Virtual Machine : Notions de base
  • 9. Le Garbage Collector Un mécanisme de recyclage de la mémoire préalablement allouée et qui n’est plus inutilisée. Les « Garbage collections » sont effectuées automatiquement par la machine virtuelle Java. Les développeurs n'ont pas besoin de libérer explicitement les objets inutilisés. Le principe de fonctionnement du Garbage Collector est assez simple :  Déterminer quels sont les objets qui ne sont plus utilisés par le programme,  Récupérer l'espace mémoire consommé par ces objets. Les algorithmes d'implémentation du Garbage Collector sont définis et conçus par le fournisseur de la JVM. © ANASYS 9Java Virtual Machine : Notions de base
  • 10. Les principales implémentations de la JVM Il existe une multitude de JVM, propriétaires et Open-sources. Les JVM les plus utilisées :  Oracle (Ex Sun) HotSpot JVM,  Oracle JRockit JVM,  OpenJDK  IBM JVM,  HP JVM,  SAP JVM,  Apache Harmony,  Dalvik virtual machine (Android), © ANASYS 10Java Virtual Machine : Notions de base
  • 11. Introduction au Tuning de la JVM Le Tuning de la JVM consiste, en général, à :  Modifier les paramètres de la mémoire,  Choisir l’algorithme du Garbage Collector.  Modifier la taille de la stack.  Optimiser le chargement des classes (Class Loading).  Optimiser les options de compilation.  Les performances des applications Java peuvent considérablement accroître avec une bonne configuration de la JVM… © ANASYS 11Java Virtual Machine : Notions de base
  • 12. Questions ? © ANASYS 12Java Virtual Machine : Notions de base
  • 13. © ANASYS 13Java Virtual Machine : Notions de base