Benchmarking et optimisations en Java

Benchmarking ?

Définition

Le terme "benchmarking" signifie à l'origine "origine, point de repère". Cela consiste en une évaluation de performances et à une comparaison à un univers de concurrence.

Usuellement pratiqué dans le monde du marketing, le benchmarking a trouvé son utilité dans le monde de l'informatique. En effet, les tests de matériel (cartes graphiques, cartes mères) sont monnaie courante et peuvent être qualifiés par cette appellation de par le protocole qui les régit( comparaisons entre plusieurs constructeurs etc...).

Il existe une forme de benchmark spécifiquement lié au développement. On parle de micro-benchmark, cela consiste à évaluer deux approches A et B qui effectuent le même traitement et à entirer des conclusions quant à leur efficacité en termes de consommation mémoire, ou plus typiquement de rapidité d'exécution.

Mise en oeuvre logicielle

Une règle d'or dans le milieu du micro-benchmark est de ne pas croire aveuglément aux chiffres, mais d'en chercher la provenance. Pour cela, il est nécessaire de tenir compte de l'ensemble des perturbations influençant potentiellement les valeurs obtenues.

Plus concrètement, pour du microbenchmarking en Java, il faut tenir compte de deux types d'interférences :


La nature de ces interférences sera explicité ultérieurement.