Java, Optimisation

Formation

À Montrouge et Rouen

1 190 € HT

Appeler le centre

Avez-vous besoin d'un coach de formation?

Il vous aidera à comparer différents cours et à trouver la solution la plus abordable.

Description

  • Typologie

    Formation

  • Dirigé à

    Pour professionnels

Objectifs: Le langage Java possède des caractéristiques qui simplifient beaucoup le développement des applications. Cette facilité de programmation fait cependant appel à des mécanismes qui peuvent se traduire par des performances médiocres, une occupation mémoire importante, voire des problèmes de flexibilité et de sécurité. Ce cours a donc pour objectif de présenter un panorama synthétique des concepts. Destinataires: Ce cours s'adresse à des développeurs et chefs de projet, ayant à réaliser le développement d'applications Java Web.

Précisions importantes

Modalité Formation continue

Les sites et dates disponibles

Lieu

Date de début

Montrouge ((92) Hauts-de-Seine)
Voir plan
41 Rue Perier

Date de début

Consulter
Rouen ((76) Seine-Maritime)
Voir plan
13 Rue Malherbe, 76100

Date de début

Consulter

À propos de cette formation

Il est destiné à des participants qui connaissent le langage Java et le développement Web. La connaissance de la plate-forme J2EE est un plus

Questions / Réponses

Ajoutez votre question

Nos conseillers et autres utilisateurs pourront vous répondre

À qui souhaitez-vous addresser votre question?

Saisissez vos coordonnées pour recevoir une réponse

Nous ne publierons que votre nom et votre question

Les Avis

Le programme

Introduction
- Les éléments intervenant dans l'optimisation et les actions correspondantes.
- Le choix d'un environnement d'exécution performant.
- Les outils d'aide à l'optimisation.
- Comparaison avec C++.

L'optimisation et la JVM
- Présentation détaillée de la JVM.
- Le GC et son fonctionnement.
- Le choix d'un environnement d'exécution performant.

L'optimisation et le langage
- Les performances sont souvent présentées comme un point faible de Java. Une approche objective relativise la critique et montre que la plupart des problèmes sont liés à une mauvaise utilisation du langage ou de certaines classes. Il est donc important de savoir identifier les sources d'inefficacité et de connaître les bons usages qui les évitent. Les gains obtenus peuvent être immenses.
- L'optimisation et la gestion des objets.
- La manipulation efficace des chaînes de caractères (l'utilisation des classes String, StringBuffer, etc.).
- L'optimisation des tests.

L'optimisation et les I/O
- Le choix des bonnes classes.
- Le package java.nio.
- L'optimisation de la sérialisation.

L'optimisation et la gestion de la mémoire
- L'existence d'un Garbage Collector n'élimine pas le risque de mauvaise gestion de la mémoire qui peut se manifester par la saturation ou par de mauvaises performances (liées à une suractivité du GC). Il est donc important d'en connaître les causes, de savoir les identifier puis de les corriger. Certaines applications posent explicitement le problème de la gestion mémoire parce qu'elles manipulent des objets de très grande taille ou de très nombreux objets. Il est nécessaire de connaître les techniques adaptées à ce type de problème.
- La saturation mémoire (cause, diagnostic, solutions).
- Les références du package java.lang.ref : SoftReference, WeakReference, PhantomReference.
- Les files de références.

L'optimisation et les applications multithreadées
- La programmation multithread est rapidement incontournable dès qu'on réalise des applications non triviales (graphique, réseau) : elle est par ailleurs implicitement mise en oeuvre par certaines classes de l'API java. L'optimisation de ces applications soulève des problèmes difficiles comme l'interblocage et la famine des threads. Il est important d'en connaître les principes et surtout les pièges qui lui sont associés.
- Rappels sur les threads (création, ordonnancement, synchronisation).
- Les problèmes posés par les threads : interblocage, famine.
- L'optimisation et les threads.
- Les pools de threads.
- Quelques éléments théoriques minimaux pour l'optimisation par raffinement.
- Exemples de solutions par raffinement.

L'optimisation et la flexibilité
- L'obtention de performances conduit souvent à utiliser des classes spécifiques à un environnement donné. La flexibilité et la configurabilité des applications peuvent donc être un élément important, dont le traitement reste encore aujourd'hui très ad hoc. Il existe pourtant des techniques connues et éprouvées qui permettent d'augmenter la flexibilité. On présente d'une part, les solutions architecturales génériques et d'autre part, celles spécifiques à Java.
- L'utilisation des interfaces et des classes abstraites.
- L'externalisation des ne- et l'utilisation de fabriques.
- Les lanceurs d'application.
- Les design patterns constructifs : adapteurs, décorateurs, proxies...

L'optimisation et l'utilisation de librairies C et C++
- L'utilisation de code C ou C++.est une solution possible au problème de performances. On présente rapidement l'interface JNI.
- Les principes généraux de JNI : l'interface JNIEnv, les étapes de la construction d'applications utilisant JNI, JNI et les performances.

Appeler le centre

Avez-vous besoin d'un coach de formation?

Il vous aidera à comparer différents cours et à trouver la solution la plus abordable.

Java, Optimisation

1 190 € HT