Evolution MM

Formations à l'informatique
Découvrez la différence ENI

Lien accueil

Téléchargez le Calendrier des formations

Nantes, Rennes, Niort, Nice, Paris

jusqu'à juillet 2018

Rechercher
Rechercher une formation
 

Optimisation du code Java

Public :

  • Ce cours s'adresse à des développeurs Java en charge de programmes requérant dans performances optimisées.

Objectifs :

  • 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.

Contenu pédagogique

Quelques rappels fondamentaux

  • L'environnement J2SE (Java 2 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

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
  • 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

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

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
    • Étude du comportement du GC via un agent JVMPI
  • Application multithreadées
    • Monitoring via JVMPI sur l'utilisation des threads
    • Le package java.util.concurrent
    • Utilisation de pool de threads
  • SoftReferences et WeakReferences

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
  • 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
Durée : 3 jour(s)
Tarif : Consultez-nous
Réf : T443-041

Dates des sessions

Nantes (44) Consultez-nous Rennes (35) Consultez-nous Paris (75) Consultez-nous Niort (79) Consultez-nous Nice (06) Consultez-nous in-class™