Développement Java :
Optimisations de code Java


Durée de la formation : 3 jours

Objectifs : A la suite de la formation le stagiaire sera apte à évaluer la consommation des ressources engendrées par une modélisation et par l'implémentation de cette dernière. L'étude des mécanismes de bas niveaux de la JVM permettra de mieux ressentir les différents concepts présentés. Des outils graphiques de monitoring et de profiling d'applications Java seront de plus présentés.

Prérequis : Afin de suivre ce cours, le stagiaire devra déjà connaître les bases du langage Java

Public ciblé : 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.


La formation sera dispensée par un formateur expérimenté sur les technologies et les produits présentés. Chaque participant se verra remettre un support de cours et disposera d'un PC afin de pouvoir effectuer les différents travaux pratiques. La formation pourra être dispensée à Saint Laurent du Var (à proximité de Nice), à Meylan (à proximité de Grenoble), à Paris ou dans les locaux de votre entreprise.


  1. 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 & 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
  2. 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
  3. "Guide lines" de programmation

    • Encapsulation VS performance
      • Coût d'invocation de getter/setter
      • Optimisation des temps de développement
    • Fonctionnement de l'instruction switch
    • Limitation d'instances temporaires
      • Utilisation des chaînes de caractères
    • Utilisation des collections Java
      • Choisir les bons algorithmes
      • Collection synchronisées ou non (Vector vs ArrayList, ...)
      • Les différentes techniques de parcours d'une collection
    • Utilisation de tableaux Java typés
      • Accès indexés aux valeurs
      • Traitements des valeurs de types primitifs
  4. 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 (Sun Microsystems)
      • Monitorer l'activité du GC
      • Collectes mineures et collectes majeures
    • 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
      • Utilisation multi-threadées du garbage collector
  5. 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
    • Application multithreadées
      • Monitoring via JVMTI sur l'utilisation des threads
      • Le package java.util.concurrent
      • Utilisation de pool de threads
    • SoftReferences et WeakReferences
  6. Outils graphiques de monitoring et de profiling

    • La JConsole
      • Présentation du modèle JMX (Java Monitoring eXtensions)
      • Démarrage d'une JVM supportant le monitoring
      • Lancement et attachement de la JConsole
      • Les différentes possibilités de la JConsole
    • Java VisualVM
      • Présentation de l'outil
      • Profilling de type CPU
      • Profilling de type Memory
    • Visual GC et GC Viewer
      • Les différences entre les deux outils
      • Analyses poussées de l'activité du GC
    • TPTP (Test and Performance Tool Platform)
      • Rappel sur l'utilisation de plugin Eclipse
      • Présentation du plugin TPTP
      • Test de détection de fuite de mémoire
      • Mesure de performances d'une application Java
      • Taux de couverture de code

© Infini Software - 2011 - Tous droits réservés - 06 63 33 14 06
439, chemin de la Ferrière - 06750 Valderoure


Filière Développement Java : Formation Optimisations de code Java

Filière Développement Java : Cours Optimisations de code Java

Quelques liens internet

Infini Software : Développement et formation Informatique - 06 Nice - St Laurent du Var - Sophia Antipolis
Infini Software : Développement et formation Informatique - 06 Nice - St Laurent du Var - Sophia Antipolis
Infini Software : Développement et formation Informatique - 06 Nice - St Laurent du Var - Sophia Antipolis
Infini Software : Développement et formation Informatique - 06 Nice - St Laurent du Var - Sophia Antipolis
Evolution MM Multimédia multimedia : Formation Informatique - 06 Nice - St Laurent du Var - Sophia Antipolis
DéveloppementFormationCatalogue de nos formationsConseilL'encyclopédieCoordonnées

Infini Software - Centre de Formation Informatique continue professionnelle

Formation Java - Formation J2EE - Formation .NET - Langage C, C++ - Formation Internet

Localisation : Sophia Antipolis Nice Alpes Maritimes 06 paca provence alpes cote d'azur Cours formation plan de cours formateur e-learning elearning langages informatique programmation c c++ java C# j2ee j2se jsp servlets Visual Basic HTML XML Javascript ASP .NET XML XSL CSS services web ado .net jdbc rmi ejb réseaux sockets Développement développements informatique développeur internet intranet extranet site web webagency agency logiciel progiciel organisme organismes systèmes embarqués embarquées temps réel Agréments certification certifié Microsoft Certified Professional MCP

Société de développement Informatique

Formation Informatique

Formations Informatique