picto Java - Java EE

Formation Optimisation et Profiling des applications JAVA

Référence

JPOJ

Durée

3 JOURS

Tarif

1690 € HT

NIVEAU

Intermédiaire

Cours à distance

Partiellement

Bestseller

Objectifs de la formation Optimisation et Profiling des applications JAVA

Cette formation Java « Profiling et Optimisation » de 3 jours, est destinée à des développeurs ayant une bonne connaissance du langage Java. Elle permet d'acquérir les compétences nécessaires pour monitorer et profiler les applications Java tout en explicitant les techniques permettant de les optimiser. Le stage commence par rappeler les concepts fondamentaux du langage (gestion de la mémoire, mécanisme d'exécution, chargement de classes) ainsi que l'approche méthodologique nécessaire pour les phases d'optimisation. Ensuite, le stage met en évidence via de petits ateliers les impacts de l'algorithmie sur les performances, les techniques classiques d'optimisation sont alors présentées. Les autres parties du stage se concentrent sur les outils utilisés pour le profiling : outils standards de la distribution, outils commerciaux ou libre et enfin les API Java permettant de mettre en place ses propres outils de monitoring ou profiling.

Pré-Requis

Cette formation Java « Profiling et Optimisation » de 3 jours, est destinée à des développeurs ayant une bonne connaissance du langage Java. Elle permet d'acquérir les compétences nécessaires pour monitorer et profiler les applications Java tout en explicitant les techniques permettant de les optimiser. Le stage commence par rappeler les concepts fondamentaux du langage (gestion de la mémoire, mécanisme d'exécution, chargement de classes) ainsi que l'approche méthodologique nécessaire pour les phases d'optimisation. Ensuite, le stage met en évidence via de petits ateliers les impacts de l'algorithmie sur les performances, les techniques classiques d'optimisation sont alors présentées. Les autres parties du stage se concentrent sur les outils utilisés pour le profiling : outils standards de la distribution, outils commerciaux ou libre et enfin les API Java permettant de mettre en place ses propres outils de monitoring ou profiling.

Public

Cette formation Java optimisation s'adresse à tout développeur, chef de projet ou architecte impliqués dans la réalisation d'applications Java et plus particulièrement J2EE.

Contenu du cours Optimisation et Profiling des applications JAVA

 

Introduction

L'optimisation de performanceVocabulaire, MéthodologieTechniques d'améliorationMise en place de benchmark Classification des outilsProblèmes liés à la performanceL'environnement Java SEConcepts fondamentaux : JVM, Zones mémoires, ClassLoader, JIT, GC, Gestionnaire d'exceptions, ...  Byte-code et désassemblageOptions de la JVM, Outil fournis par la distribution JVMTI (Java Virtual Machine Tools Interface) 

Le ramasse miettes

Aspects fondamentauxTâches du garbage collector : libération et défragmentation  Collectes mineures et collectes majeuresLes différents algorithmes utilisés  Monitorer l'activité du GC  Tuning et paramétrage du GCGestion de la taille des Heap (-Xmx, -Xms, XX:NewRatio, -XX:SurvivorRatio, ...)  Libération incrémentale des ressources  Utilisation multi-threadées du garbage collector

Bonnes pratiques

GénéralitésLimitation d'instances temporaires, boucles et récursivitéUtilisation des chaînes de caractèresFonctionnement de l'instruction switch Exceptions et stacktraceGestion des I/O, Bufferisation, le package java.nioLes collections et tableaux Choisir les bons algorithmes et les bonnes implémentations Collection synchronisées ou non (Vector vs ArrayList, ...)  Les différentes techniques de parcours d'une collection  Utilisation des tableaux Java typés , Accès indexés aux valeurs  Traitements des valeurs de types primitifsCoût des allocations/désallocationsRéutilisation d'instance Implémentation et utilisation d'un pool d'instances  Pattern singleton du ThreadLocalLes Weak references Applications multithreadéesCas d'usage des threads, les problèmes de synchronisationMonitoring via JVMTI sur l'utilisation des threads  Le package java.util.concurrent  Utilisation de pool de threadsAtelier : Petits ateliers permettant d'identifier les goulots d'étranglement et d'appliquer les techniques d'optimisation présentées

Support de Java SE pour le monitoring et le profiling

Présentation des différentes commandes en lignes (jps, jmap, ...)Introduction et rappel sur JMXLes MXBeans standards La JConsole, monitoring local ou distant, extensibilité, Mbeans applicatifsJava Visual VM : monitoring, profiling d'applications, accès local ou remoteAtelier : Profiling d'une application de gestion des contacts avec JProfiler

Outils de profiling

IntroductionPanorama des outils disponibles (Netbeans Profiler, Yourkit, Java Mission Control, etc.)Outils connexes au profiling, simulateur de charge, benchmarking  Exemple de Netbean profiler Présentation MonitoringProfiling CPU  Profiling Memoire Autres fonctionnalités proposéesFonctionnement avec JMeterAteliers réalisés avec le profiler de votre choix (Netbeans, Yourkit, etc.) : 1. Découverte des fonctionnalités du profiler
2. Diagnostic de problèmes sur une application web complète

Développement de ses propre profilers

L'API JMXAccès locauxAccès distantsConcepts fondamentaux de JVMTILes différentes versions l'interface JVMTI  Les événements JVMTI Codage d'agents JVMTITraquer l'activité du ClassLoader  Traquer l'activité en termes d'allocations dynamiques  Traquer l'activité en termes d'appels de méthodesAtelier : 1. Développement de programmes monitorant des applications via JMX2. Développement d'un agent JVMTI traçant les appels de méthodes