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