Aller au contenu principal

JAVA - Optimisation de code

Date de mise à jour :
Identifiant Offre Info : 15_26527507F
Organisme responsable : Themanis (ouvre dans un nouvel onglet)

Nouvelle recherche

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…

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

Attestation de formation

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

    Programme : Autre financement (AIF, entreprise , individuel…)

    Publics : Développeurs JAVA, chef de projet et consultant Java

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