Formation - Infini Software
Infini Software - Organisme de formation en informatique
Maintenez vos compétences à jour grâce à nos formations
Rechercher
☎ 06 63 33 14 06 Espace client



Cursus « Formations Java » :
Optimisations de code Java

Détails :

Durée :
3 Jours
Prérequis :
Afin de suivre ce cours, le stagiaire devra déjà connaître les bases du langage Java.
Public :
Cette formation s'adresse aux développeurs Java.
Objectifs :
Mal codée, une application Java peut engendrer une sur-consommation des resources de la JVM. Cette formation vous propose de mieux comprendre les rouages d'une JMV afin de pouvoir en exploiter son maximum.

Au terme de cette formation, vous serez en mesure de :
  • Comprendre les principes de fonctionnement d'une JVM
  • Savoir développer et démarrer un agent JVMTI
  • Appliquer des "Guide Lines" de programmation pour optimiser les performances
  • Optimiser l'accès à vos bases de données
  • Recycler les ressources de la JVM et optimiser les applications multithreadées
  • Comprendre le fonctionnement du Garbage Collector et ses évolutions
  • Savoir utiliser des outils graphiques de monitoring et de profiling Java

Demande de devis :

Devis :
Si vous souhaitez être contacté et obtenir plus d'informations sur cette formation veuillez remplir notre formulaire de mise en relation.

Cursus de formation :

Cursus :




Programme détaillé de la formation :

    Quelques rappels fondamentaux
    • L'environnement Java SE (Java Standard Edition)
      • Concepts fondamentaux : ClassLoader, JIT, GC, Gestionnaire d'exceptions, ...
      • JVMTI (Java Virtual Machine Tools Interface)
      • Quelques outils du J2SE : javap, ...
    • Notion de byte code
      • Utilisation du désassembleur javap
      • Notions de pile et de tas (Stack et 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 de 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
    "Guide lines" de programmation
    • Evitons de refaire les choses
    • Utiliser correctement les Loggers (Log4J, ...)
    • Fonctionnement de l'instruction switch
    • Limitation d'instances temporaires
    • Utiliser de manière efficace les chaînes de caractères
      • StringBuilder vs StringBuffer
      • Internalisation des chaînes de caractères
    • Utilisation des collections Java
      • Choisir les bons algorithmes face aux besoins
      • Collections 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
      • Accès indexés aux valeurs
      • Traitements des valeurs de types primitifs
    • Utilisation de classes et méthodes finales
    Accès performants à vos bases de données
    • Utilisation de PreparedStatement
    • Utilisation de batchs
    • Optimisation des requêtes SQL
    • Utilisation de caches
    • Utilisation de pools de connexions
    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 multi-threadé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
    Le Garbage collector (GC)
    • Aspects fondamentaux
      • Tâches du garbage collector : libération et défragmentation
      • Les différents stratégies utilisés (Mark & Sweep, Stop & Copy, ...)
    • Fonctionnement du Garbage Collector de la JVM Hotspot (Oracle)
      • Paramétrage du Garbage Collector (-Xmx, -Xms, -XX:NewRatio, -XX:SurvivorRatio, ...)
      • Monitorer l'activité du GC au travers des logs du GC
      • Collectes mineures et collectes majeures
    • Les différents implémentations de Garbage Collectors dans Hotspot
      • G1 (Garbage First)
      • ZGC (Z Garbage Collector) et Shenandoah
      • Les implémentations plus anciennes : Serial, Parallel, CMS
    • Comparaison Hotspot/OpenJ9
    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 type Memory
    • Autres outils de profilage
      • Utilisation de JFR (Java Flight Recorder) et de JMC (Java Mission Control)
      • Utilisation du plugin Eclipse Memory Analyser Tool
      • JProfiler
Déclaration d'activité enregistrée sous le n° 93 06 11543 06 du préfet de région de Provence-Alpes-Côte d'Azur.