Développement Java

Java Optimisation

Objectifs

  • Appliquer une démarche d'optimisation
  • Comprendre le fonctionnement de la machine virtuelle (JVM)
  • Connaître et savoir utiliser les outils d'audit et de mesure
  • Repérer les fuites mémoire
  • Comprendre la problématique des applications multi-thread, détecter (ou éviter) les erreurs

Programme

La performance
  •   Définition
  •   La performance pour tous
  •   Les éléments composant la performance
  •   La performance perçue
  •   La performance au démarrage
  •   Impact dans les couches d’une application
  •   Performance et architecture
  •   La notation « grand O »
Le processus d’optimisation
  •   Analyser
  •   Coder
  •   Mesurer pour vérifier
Benchmarking
  •   Mesure de temps
  •   Les pièges
  •   Le benchmarking
  •   Les microbenchmarks
  •   JMH
  •   Recommandations
Les outils
  •   Profiling
  •   JVisualVM
  •   Eclipse MAT
  •   SoapUI
  •   JMeter
Les principaux soucis de performance
  •   Les bottlenecks
  •   Les origines
L’utilisation efficace des API
  •   API Collections
  •   L’utilisation des wrappers
  •   La méthode hashCode()
Gérer les entrées sorties
  •   L’utilisation des classes à bon escient
  •   La sérialisation
  •   La sérialisation personnalisée
  •   Les échanges réseau
Les accès à la base de données
  •   Nombre excessif de requêtes
  •   Mauvaise configuration de la persistance
  •   Lectures de données importantes et/ou superflues
  •   Configuration du pool de connexions
La gestion de la mémoire
  •   L’organisation de la mémoire
  •   Le ramasses-miettes
  •   Le cycle de vie des objets
  •   Configurer la mémoire et le GC
  •   Mesure de la mémoire
  •   Off Heap
  •   La gestion de la mémoire et les performances
  •   Les options de la JVM HotSpot pour le suivi de l’activité du GC
  •   Fuite de mémoire
  •   Fuite de ressources
Optimiser l’utilisation de la mémoire
  •   Optimiser l’occupation mémoire
  •   Optimiser les instanciations
Parallélisation
  •   Les apports de la parallélisation
  •   La mise en œuvre
  •   Les API
  •   Le framework Fork/Join
  •   Race condition et contention
  •   Les deadlocks
  •   Obtenir et exploiter un threaddump
  •   Les streams parallèles
Les légendes urbaines
  •   Java est lent
  •   La concaténation de chaînes
  •   Augmenter la taille du heap
  •   Le cache comme LA solution
  •   64 bits vs 32 bits
L’importance  de la JVM et de la version de Java
  •   Choisir la JVM
  •   Configurer la JVM
  •   La version de Java utilisée
La performance n’est pas que technique
  •   Les raisons non techniques des mauvaises performances
  •   Prise en compte dans le SDLC (Software Development Live cycle)
  •   Mesurer la performance en continue
  •   Monitoring
Please login to get access to the quiz
(Next Lesson) Java niveau avancé
Back to Développement Java