JRat " Java Runtime Analysis Toolkit " - Analyser pour optimiser

L'analyse d'un programme java en vue de l'optimiser

1. Analyser les performances d'un programme - Pourquoi ?

La première problématique que l'on rencontre lorsque l'on développe un application est de savoir si elle est suffisamment performante pour le client à qui elle est destinée.

Ensuite, lors de l'analyse technique de l'application, un certains nombre de choix doivent être fait. Choisir une structure de données, un type de support ou encore une méthode de tri, sont autant de choix difficiles car dépendants de l'utilisation que l'on en fait. Il serait donc très intéressant de pouvoir mesurer les temps de réponses d'une fonction comparativement à la même fonction mais implémentée avec un algorithme différent.

Enfin, comme on peut le voir, une analyse de performance vise souvent à valider un comportement ou faire des choix sur des parties bien ciblées d'une application. Mais que faire s'il on ne sait pas quelle partie optimiser ? En effet, il n'est a priori pas évident de savoir qu'elle partie du code doit être optimiser. Une analyse parfaite de performance permettrait donc de suivre le comportement d'une application afin d'en analyser les points faibles.

2. Conditions d'analyse de performance ?

Cela paraît parfois évident, mais il n'est pas inutile de rappeler un certain nombre de conditions à satisfaire pour prétendre pouvoir analyser et tester du code :

3. Principe de l'optimisation

Voici comment on pourrait schématiser le cycle d'optimisation dans lequel nous allons faire notre analyse de performance :

cycle d'optimisation

Comme on peut le voir celui-ci est découpé en cinq parties :

4. Comment optimiser ?

Comme on a pu le voir lors du cycle d'optimisation, la partie la plus difficile est la modification du code. En effet, si notre analyse de performance nous permet de localiser très précisément nos goulots d'étranglement, elle ne nous dit pas comment les corriger ;)

La difficulté réside donc sur la causalité des goulots d'étranglement. Pourquoi mon code passe-t-il autant de temps à cet endroit là ? Il est la plupart du temps intéressant de se pencher sur trois types de problèmes :

5. Les règles d'optimisation

Pour finir voici quelques règles d'optimisation basiques mais importantes à suivre :

6. Les outils du marché

Pour faire les analyses de performances, quelques outils sont disponibles. C'est un marché qui n'est pas encore très abondant. On trouve trois types d'outils :

Valid XHTML 1.0!