Optimisation Java - DEV OPT Les applications Java, comme toute autre application informatique, souffrent généralement de problèmes de performance, souvent détectés tardivement. Il n'est pas toujours possible de se reposer sur les exploitants en augmentant les capacités de l'infrastructure (bien que ce soit parfois une solution plus rapide et économique). Il faut alors demander aux développeurs de replonger dans leur code pour l'optimiser. Encore faut-il avoir une démarche et des outils pour comprendre ce qu'il faut optimiser et savoir comment le faire Objectifs : Savoir 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 Public : Architectes Consultants Développeurs Ingénieurs Pré-Requis : Bonne pratique de Java Durée : 2 jours La performance Introduction Vitesse de calcul Occupation mémoire Temps de démarrage Scalabilité Performance perçue Le processus d'optimisation Reproduire et mesurer Analyser et décider (quand et quoi optimiser) Optimiser (codage vs conception) Vérifier (la non-régression et l'amélioration) Les outils Mesure de temps et d'allocation JUnit JMeter Eclipse TPTP visualvm Eclipse MAT Optimiser l'utilisation de la mémoire Comprendre le garbage collector et la gestion de la mémoire Oodaya Conseil & Formation - Le Millénaire - 1350 avenue Albert Einstein Bât.4 - 34000 Montpellier - Tel : 09.83.20.73.30 / 06.34.08.75.94 - www.oodaya.fr 1/2 Choisir et configurer la JVM Optimiser l'utilisation de la mémoire Eviter les « fuites » Eviter les allocations inutiles Pool et autres patterns Utiliser les bonnes classes Contrôler les chargements de classes Gérer les accès concurrents Définition d'un thread Comprendre la synchronisation des Threads Créer et manipuler les threads Synchroniser les threads sur un objet moniteur Exemple de temps réel Bonnes et mauvaises pratiques Gérer les flux d'entrées/sorties Flux binaires, encodages, bufferisation Sérialisation/désérialisation d'objets Les modifieurs Java et leurs impacts Gestion de fichiers Gestion d'échanges réseau Oodaya Conseil & Formation - Le Millénaire - 1350 avenue Albert Einstein Bât.4 - 34000 Montpellier - Tel : 09.83.20.73.30 / 06.34.08.75.94 - www.oodaya.fr 2/2