1. Dans les boucles importantes, éliminez les appels de méthode lorsque vous jugez la fin de la boucle.
Copiez le code comme suit :
pour(int i=0; i<collection.size(); i++)
{
...
}
pour(int i=0; i<collection.size(); i++)
{
...
}
Remplacer par…
Copiez le code comme suit :
afficher la copie ordinaire dans le presse-papiers ?
pour(int i=0;n=collection.size();i<n;i++)
{
...
}
2. Habituellement, déplacez les éléments qui ne sont pas liés à l'index de la boucle en dehors de la boucle.
Copiez le code comme suit :
pour(int i=0;terminal=x.length;i<terminal;i++){
X[i]=x[i]/échelleA*échelleB;
}
pour(int i=0;terminal=x.length;i<terminal;i++){
X[i]=x[i]/échelleA*échelleB;
}
Changer pour
Copiez le code comme suit :
double échelle = échelleB/échelleA ;
pour(int i=0; terminal=x.length; i<terminal; i++){
X[i]=x[i]*échelle ;
}
2. Chaîne
Éliminer la concaténation de chaînes Lors de la création de chaînes longues, utilisez toujours StringBuffter au lieu de String
Pré-allouer de l'espace StringBuffer
StringBuffer sb = nouveau StringBuffer(5000);
3. Types de données de base
Utilisez des types de données de base dans les boucles importantes (les types de données int sont généralement plus rapides que les types de données longs/doubles)
Les classes wrapper de types de données de base (Boolean, Integer, etc.) sont principalement utilisées lorsque le paramètre de méthode passé doit être une référence à un objet (plutôt qu'un type de données de base)
Utilisez le modificateur final statique pour toutes les expressions algébriques constantes
L'un rend les constantes plus faciles à référencer (le compilateur précalcule les expressions constantes)
4. Anomalie
Les exceptions ne sont utilisées que pour une seule vraie condition d'erreur
Lancer une exception et exécuter un bloc catch coûte cher (principalement en raison de l'obtention d'un instantané de la pile de threads lors de la création d'une exception)
Une exception n'est levée que lorsque la condition est vraiment anormale
Effectuez des optimisations du compilateur et de l'exécution en plaçant plusieurs appels de méthode dans un bloc try/catch au lieu d'implémenter plusieurs blocs try/catch pour chaque appel de méthode.
5.Référence
Notez que tous ces conseils varient selon les plates-formes et les machines virtuelles
Par exemple : dans certains conteneurs de servlets, il est plus rapide de générer des octets via un OutputStream - dans d'autres conteneurs, il est plus rapide de générer des caractères via un PrintWriter.
Ces conseils décrivent les recommandations les plus portables
Vous devrez peut-être effectuer des tests de performance pour déterminer ce qui est le plus rapide sur votre plate-forme.