Optimisation du code Java

publicité
Optimisation du code Java
Référence : 19003-151119-7-JAV
Durée : X jour soit X heures
Population visée :
Ouvrier – Employé – Employé qualifié – Cadre – Cadre
supérieur
Filière : Développement
Stage disponible en mode « InClass »
Public concerné :
Toute personne en charge de programmes requérant
dans performances optimisées.…
PRÉ-REQUIS
•
Afin de suivre ce cours, le stagiaire devra déjà connaître les bases du langage Java.
OBJECTIFS PEDAGOGIQUES
A l’issue de cette formation, l’apprenant sera capable de :
• 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.
OBJECTIFS OPERATIONNELS ET CONTENU DE LA FORMATION
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
Page 1/3 - Optimisation du code Java - Mise à jour le 13/02/2013
Concepteur : ENI SERVICE – Diffuseur : Groupe ARKESYS
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
Page 2/3 - Optimisation du code Java - Mise à jour le 13/02/2013
Concepteur : ENI SERVICE – Diffuseur : Groupe ARKESYS
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
Méthodes et moyens :
•
•
•
•
Explications théoriques suivies de pratiques guidées puis mises en autonomie
Stage en mode « InClass » : 2 téléviseurs et 1 caméra HD par salle
1 vidéoprojecteur par salle
1 ordinateur par stagiaire
Méthodes d’évaluation des acquis :
•
•
Exercices de synthèse et d’évaluation
Evaluation de fin de stage
Profil formateur :
Nos formateurs sont certifiés à l’issue d’un parcours organisé par nos soins. Ils bénéficient d’un suivi de
compétences aussi bien au niveau technique que pédagogique.
Support stagiaire :
•
•
Support papier ou électronique (dématérialisé)
Les exercices d’accompagnement peuvent être récupérés sur clef USB
Page 3/3 - Optimisation du code Java - Mise à jour le 13/02/2013
Concepteur : ENI SERVICE – Diffuseur : Groupe ARKESYS
Téléchargement