JAVA - Optimisation de code
Date de mise à jour :
Identifiant Offre Info : 15_26527507F
Organisme responsable :
Themanis
(ouvre dans un nouvel onglet)
Présentation de la formation
Objectifs
- Analyser la consommation des ressources engendrées par une modélisation et par l'implémentation de cette dernière
- Analyser les mécanismes de bas niveaux de la JVM permettra de mieux ressentir les différents concepts présentés
- Définir les outils graphiques de monitoring et de profiling d'applications Java
Programme de la formation
Quelques rappels fondamentaux : L'environnement Java SE (Java Standard Edition) 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…
L'environnement Java SE (Java Standard Edition)
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 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 Correctement utiliser les Logger (Log4J, …)
Fonctionnement de l'instruction switch
Limitation d'instances temporaires
Correctement utiliser les chaînes de caractères
Utilisation des collections Java :
Choisir les bons algorithmes faces 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 typés :
Accès indexés aux valeurs
Traitements des valeurs de types primitifs
Encapsulation VS performance
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 (Oracle) : Monitorer l'activité du GC
Collectes mineures et collectes majeures
Comparaison Hotspot/OpenJ9
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
Les évolutions du GC au fil des versions de Java
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
Gestion de la synchronisation de vos threads
SoftReferences et WeakReferences
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 du plugin Eclipse Memory Analyser Tool JProfiler
Validation et sanction
Type de formation
Non certifiante
Niveau de sortie
Sans niveau spécifique
Durée, rythme, financement
Durée
En centre
21 h
Financement
- Conventionnement
- Non
- Financeur
-
- Autre
Conditions d'accès
Publics visés
- Demandeur d'emploi
- Public en emploi
- Salarié dans le cadre du CIF
- Salarié dans le cadre du DIF
- Salarié dans le cadre du plan de formation
- Salarié en contrat aidé
- Salarié en période de professionnalisation
- Salarié en reconversion
- Tout public
Informations sur les publics
Développeurs JAVA, chef de projet et consultant Java
Niveau d'entrée
Sans niveau spécifique
Conditions spécifiques et prérequis
- Garantir maîtriser les bases du langage Java
Lieu de réalisation de l'action
Modalités d'enseignement
Formation entièrement à distance
Adresse
Périodes prévisibles de déroulement des sessions
Début
Fin
- Adresse d'inscription
-
308 ALL DU LAC
31670 Labège - État du recrutement
- Ouvert
- Modalités
- Entrées / Sorties à dates permanentes