loader image

Gate Training

logo-png
Java - Java EE

Formation Optimisation et Profiling des applications JAVA avec JProfiler

3 Jours

Description de la formation Java optimisation

Cette formation Java Profiling et Optimisation avec JProfiler, est destinée à des développeurs ayant une bonne connaissance du langage Java. C’est une personnalisation de la formation standard JPOPJ en effectuant la plupart des ateliers avec l’outil Jprofiler et en faisant un focus sur les facilités apportés par  l’outil.

Objectifs

Objectifs Opérationnels:

Savoir monitorer et profiler les applications Java tout en explicitant les techniques permettant de les optimiser

Objectifs pédagogiques:

Concrètement, à l’issue de cette formation Java optimisation vous aurez acquis les compétences nécessaires pour:

  • Maitriser les concepts fondamentaux du langage (gestion de la mémoire, mécanisme d’exécution, chargement de classes…)
  • Connaitre les impacts de l’algorithmie sur les performances
  • Maitriser les techniques classiques d’optimisation
  • Connaitre les particularités des services back-end écrits en Java

À qui s’adresse cette formation ?

Public :

Cette formation Java optimisation s’adresse à tout développeur, chef de projet ou architecte impliqués dans la réalisation d’applications Java et plus particulièrement J2EE.

 

Prérequis :

Connaissance de Java

 

Contenu du cours Java optimisation

Introduction

L’optimisation de performance :

Méthodologie, recommandations, benchmarking, métriques observés

Concepts fondamentaux de Java :

JVM, Zones mémoires et GC, ClassLoader, Multi-threading, JIT, JVMTI, Outils de base

Les causes de mauvaises performances

CPU, mémoire, IO

Le ramasse miettes

Introduction
Pools de la HotSpot
Les différents algorithmes
Tuning du garbage collector

Atelier

Observation des collectes avec JProfiler, tuning des zones mémoire et de l’algorithme

Boites à outils

Introduction et complémentarité des outils

Outils systèmes
JMX et les Mxbeans de la JVM
Agents JVMTI, exemples

Outils fournis par la distribution

Commandes en ligne Java
jVisualVM et jmc

JProfiler

Distributions, Facilités proposés
Temps d’exécution : Enregistrements des appels, CPU profiling,
Mémoire : Utilisation, collectes
Multi-threading :
Serveurs back-ends, JavaEE

Atelier

Monitoring via des consoles JMX, Exemple d’un agent JVMTI
Ateliers avec les commandes en lignes
Utilisation de JProfiler pour différents cas de détection de mauvais fonctionnement

Optimisation de code Java

Généralités

Limitation d’instances temporaires, boucles et récursivité, les streams
Utilisation des chaînes de caractères, switch
Exceptions et stacktrace
Gestion des I/O, Bufferisation, le package java.nio, gestion des traces

Les collections et tableaux

Choisir les bonnes implémentations en fonction de l’algorithme
Collection synchronisées ou non

Coût des allocations/désallocations

Réutilisation d’instance
Pattern pool , singleton, ThreadLocal
Les Weak references

Applications multithreadées

Cas d’usage des threads, les problèmes de synchronisation, mécanismes de base
Le package java.util.concurrent
Utilisation de pool de threads
Java8 et l’asynchronisme
Reactive programming

Atelier

Optimisation d’application en utilisant les techniques présentées

Services Back-end

Particularités JavaEE et services back-end

Différents Pool de l’architecture, les caches, scalabité
Outils de simulation de charge
Intégration des serveurs JProfiler

Persistance et JPA

Pools de connexions
Optimisation du schéma
Caches

Métier

Modèle stateless/stateful
Transactions

Http et REST

Sérialisation/désérialisation
Optimisation des transferts

Ateliers

Diagnostic de problèmes sur une application web complète, sur une API Rest

Travaux Pratiques

Java 6/7 – Utilisation de Netbeans, Netbeans Profiler ou JProfiler

Réf:

0073

Tarif:

600 Dt

Niveau:

Intermédiaire

Classe à distance:

Possible

Pas de sessions disponibles