Page précédenteIndexPage suivante

8.3- Optimisation du code Java

Le code Java est exécuté via une JVM. De ce fait, il peut difficilement rivaliser en vitesse d'exécution avec des langages compilés comme le C ou le C++. cela est la plupart de temps non bloquant dans le sens où les temps de traitement sont négligeables pour l'utilisateur. Néanmoins, il est nécessaire d'optimiser son code pour trois raisons principales:

Les conseils suivants vous permettront de facilement augmenter la vitesse d'exécution de votre application et de diviser d'autant la mémoire consommée.

Objets et primitifs

Il faut utiliser au maximum les variables primitives qui ne sont pas des objets et donc sont très légers en mémoire.

Rappel de la taille des primitifs en Java:

Type

Taille ( bits )

long

64bits

int

32bits

boolean

8bits (faux 1 bit)

byte

8 bits 

float

32 bits 

double

64 bits 

Les opérations sur les tableaux

Toute copie d'un tableau vers un autre lorsque le nombre d'éléments est important doit être effectuée via la méthode System.arraycopy() . Voir l'exemple explicite suivant. Le temps de copie est divisé par 2.5.

byte[]bTest=new byte[10000000];
byte[]bTest2=new byte[10000000];
for(i=0;i<10000000;i++){
   bTest2[i]=bTest[i];
}
250ms

System.arraycopy(bTest,0,bTest2,0,10000000);
110ms

Nombre de dimensions d'un tableau:

Il faut créer des tableaux aux dimensions les plus petites possibles. En effet une affectation dans un tableau à deux dimension:

byte[][] bTest;
bTest[0][0]=10;

prend presque deux fois plus de temps que:

byte[] bTest;
bTest[0]=10;

Et ainsi de suite en augmentant le nombre de dimensions du tableau.

Divers

Par exemple, préférer:

try{
    a();
    b();
}
catch(Exception e){
}

à

try{
    a();
}
catch(Exception e){
}
try{
    b();
}
catch(Exception e){
}



Page précédenteIndexPage suivante