
Formation JAVA SE Optimisations de code Java
Domaine : Développement et méthodes
DURÉE
3 jour(s)
OBJECTIFS
Evaluer la consommation des ressources engendrées par une modélisation et par l'implémentation de cette dernière. Etude des mécanismes de bas niveaux de la JVM. Présentation des outils graphiques de monitoring et de profiling d'applications Java.
Pré-requis
Connaissance des bases du langage Java.
Participants
Tous développeurs Java, et plus particulièrement ceux spécialisés dans le développement d'applications critiques, temps réel ou fonctionnant en environnement embarqués.
coût
Nous contacter pour une formation sur mesure ou en intra
LIEUx de formation
Notre centre de formation à Sophia AntipolisOu sur votre site en formation intra
PROGRAMME DE FORMATION
JAVA SE Optimisations de code Java
Quelques rappels fondamentaux
L'environnement J2SE (Java 2 Standard Edition) (Concepts fondamentaux (ClassLoader, JIT, GC, Gestionnaire d'exceptions...), JVMPI (Java Virtual Machine Profiling Interface), Quelques outils du J2SE (javap...))
Notion de byte code (Utilisation du désassembleur javap, Notions de pile et de tas (Stack & Heap), Mécanisme de déclarations : variables locales et attributs, Appels de méthodes en assembleur)
Quelques considérations sur les performances (Temps d'exécution VS taille de l'exécutable, Génie logiciel VS Performances)
Notion de byte code (Utilisation du désassembleur javap, Notions de pile et de tas (Stack & Heap), Mécanisme de déclarations : variables locales et attributs, Appels de méthodes en assembleur)
Quelques considérations sur les performances (Temps d'exécution VS taille de l'exécutable, Génie logiciel VS Performances)
Développement d'agents JVMTI
Concepts fondamentaux de JVMTI (Les différentes versions l'interface JVMTI, Les évènements JVMTI)
Codage d'agents JVMTI (Traquer l'activité du ClassLoader, Traquer l'activité en termes d'allocations dynamiques, Traquer l'activité en termes d'appels de méthodes)
Codage d'agents JVMTI (Traquer l'activité du ClassLoader, Traquer l'activité en termes d'allocations dynamiques, Traquer l'activité en termes d'appels de méthodes)
"Guide lines" de programmation
Utiliser correctement les Logger (Log4J...)
Fonctionnement de l'instruction switch
Limitation d'instances temporaires
Utiliser correctement les chaînes de caractères
Utilisation des collections Java (Choisir les bons algorithmes face aux besoins, Collection synchronisées ou non (Vector vs ArrayList...), Les différentes techniques de parcours d'une collection, Problèmatiques de l'autoboxing et du unboxing)
Utilisation de tableaux Java typés (Accès indexés aux valeurs, Traitements des valeurs de types primitifs)
Encapsulation VS performance
Fonctionnement de l'instruction switch
Limitation d'instances temporaires
Utiliser correctement les chaînes de caractères
Utilisation des collections Java (Choisir les bons algorithmes face aux besoins, Collection synchronisées ou non (Vector vs ArrayList...), Les différentes techniques de parcours d'une collection, Problèmatiques de l'autoboxing et du unboxing)
Utilisation de tableaux Java typés (Accès indexés aux valeurs, Traitements des valeurs de types primitifs)
Encapsulation VS performance
Le garbage collector (GC)
Aspects fondamentaux (Tâches du garbage collector : libération et défragmentation, Les différents algorithmes utilisés)
Fonctionnement du Garbage Collector de la JVM Hotspot (Oracle) (Monitorer l'activité du GC, Collectes mineures et collectes majeures)
Comparaison Hotspot/OpenJ9
Paramétrage du Garbage Collector de la JVM HotSpot (Gestion de la taille des Heap (-Xmx, -Xms, -XX:NewRatio, -XX:SurvivorRatio...), Libération incrémentale des ressources)
Les évolutions du GC au fil des versions de Java
Fonctionnement du Garbage Collector de la JVM Hotspot (Oracle) (Monitorer l'activité du GC, Collectes mineures et collectes majeures)
Comparaison Hotspot/OpenJ9
Paramétrage du Garbage Collector de la JVM HotSpot (Gestion de la taille des Heap (-Xmx, -Xms, -XX:NewRatio, -XX:SurvivorRatio...), Libération incrémentale des ressources)
Les évolutions du GC au fil des versions de Java
Recyclons les ressources de la JVM
Utilisation d'un pool d'instances (Implémentation d'un pool d'instances, Utilisation d'un pool d'instances, Etude du comportement du GC via un agent JVMTI)
Applications multithreadées (Monitoring via JVMTI sur l'utilisation des threads, Le package java.util.concurrent, Utilisation de pool de threads, Gestion de la synchronisation de vos threads)
SoftReferences et WeakReferences
Applications multithreadées (Monitoring via JVMTI sur l'utilisation des threads, Le package java.util.concurrent, Utilisation de pool de threads, Gestion de la synchronisation de vos threads)
SoftReferences et WeakReferences
Outils graphiques de monitoring et de profiling
La JConsole (Présentation du modèle JMX (Java Monitoring eXtensions), Lancement et attachement de la Jconsole, Les différentes catégories d'informations collectées)
Visual GC et GC Viewer (Les différences entre les deux outils, Analyses poussées de l'activité du GC)
Java VisualVM (Présentation de l'outil, Profilling de type CPU, Profilling de typer Memory)
Autres outils de profilage (Utilisation du plugin Eclipse Memory Analyser Tool)
Visual GC et GC Viewer (Les différences entre les deux outils, Analyses poussées de l'activité du GC)
Java VisualVM (Présentation de l'outil, Profilling de type CPU, Profilling de typer Memory)
Autres outils de profilage (Utilisation du plugin Eclipse Memory Analyser Tool)
dates des formations a grenoble
dates des formations a SOPHIA ANTIPOLIS
formations associées
- JAVA 1B JAVA - Programmation Orientée Objet en Java : les fondamentaux
- JAVA 1B JAVA - Programmation Orientée Objet en Java : les compléments
- JAVA 1B JAVA Gérer la persistance des données avec JPA/Hibernate
- JAVA 2B JAVA Développement Web Back End avec Java EE et Web Services (RESTful et SOAP)
- JAVA 2B JAVA - Développement d'applications mobiles avec Android et Android Studio
- JAVA 4B JAVA - Préparation et passage de la certification
- JAVA Nouveautés de Java 7 et 8
- JAVA Perfectionnement
- JAVA EE Gérer la persistance des données avec JPA/Hibernate
- JAVA EE Mise en oeuvre de Services Web
- JAVA EE Spring Framework
- JAVA SE Eclipse : plugins et RCP
- JAVA SE Java / Corba
- JAVA SE Les nouveautés du J2SE 6.0
- JAVA SE Mise en oeuvre ANT
- JAVA SE Programmation Swing
- JAVA SE Tests et intégration de code Java
- Serveurs d'applications J2EE Administration du serveur JBoss
- Serveurs d'applications J2EE Administration du serveur Tomcat
- Serveurs d'applications J2EE Administration WebSphere 6.0