Yann Secq wrote:
> Pierre-Fran�ois Lemosquet wrote:
> 
>> Bonjours la liste.
>> Est ce que indiquer qu'une classe est final a un impact sur la 
>> compilation du code en terme d'ex�cution du code (performance).
> 
> 
> Oui : lorsqu'une classe est d�clar�e finale, toutes ses m�thodes
> le deviennent implicitement. Le compilateur peut ainsi transformer
> les appels de m�thodes (inlining) et les performances sont meilleures.
> Ce petit livre pourrait t'int�resser : http://www.glenmccl.com/jperf/
> 
> a+, yann.
> 

Le probl�me avec la performance de java, c'est qu'il
faut pr�ciser la JVM que l'on utilise. En particulier,
avec une JVM r�cente (1.3+), le JIT est suffisement
intelligent pour inliner sans avoir � d�clarer des
�l�ments final, ce qui constitue un choix de conception
quand m�me assez structurant.

A noter qu'avec une technologie de compilation adaptative
comme HotSpot et avec un langage interpr�t� comme Java,
la JVM peut d�cider d'�tre tr�s aggressif dans une
optimisation pour �ventuellement effectuer une
optimisation/inlining moins franche, par exemple lors
du chargement d'une sous classe.

Plus ca va, plus il faut laisser faire la JVM (le
GC est un autre domaine ou c'est de plus en plus vrai).

Cdlt,
Alexis

Répondre à