Y a-t-il une raison de performance pour déclarer les paramètres de la méthode final en Java ?
Comme dans :
Contre :
En supposant que est seulement lu et jamais modifié en
.
Y a-t-il une raison de performance pour déclarer les paramètres de la méthode final en Java ?
Comme dans :
Contre :
En supposant que est seulement lu et jamais modifié en
.
Le mot-clé final n'apparaît pas dans le fichier de classe pour les variables locales et les paramètres, donc il ne doit pas affecter les performances d'exécution. C'est seulement l'utilisation est de clarifier les codeurs intention que la variable ne soit pas changé (que beaucoup considèrent comme douteux en raison de son utilisation), et de traiter avec les classes internes anonymes.
Il y a beaucoup d'argument sur le fait que le modificateur final sur la méthode elle-même a aucun gain de performance étant donné que les méthodes seront intégrées par le compilateur optimisant au moment de l'exécution de toute façon, quel que soit le modificateur. Dans ce cas, il doit également être utilisés pour limiter la surcharge de la méthode.
Le seul avantage à un paramètre final est qu’il peut être utilisé dans les classes imbriquées anonymes. Si un paramètre n’est jamais modifié, le compilateur détecte déjà que dans le cadre de son fonctionnement normal même sans le modificateur final. C’est assez rare que les bogues sont causées par un paramètre étant assigné de façon inattendue - si vos méthodes sont assez grands pour le besoin de ce niveau d’ingénierie, font leur petits - méthode que vous appelez ne pouvez pas modifier vos paramètres.
Je ne peux pas penser à une raison pourquoi le compilateur de soins si vous avez déclaré un paramètre d'une méthode finale ou pas.
Mais la vraie réponse à cette question est, écrire deux fonctions, l'une avec final paramètres et l'une avec régulièrement des paramètres. Exécuter un million de fois chaque et voir si il n'y a aucun signe d'exécution différence.
Si vous êtes inquiet au sujet de la performance, il est très important de faire un certain profilage de travail sur votre code et de savoir exactement qu'est-ce que vous ralentir. C'est presque certainement pas ce que vous attendez qu'il soit :)
Les compilateurs qui fonctionnent après chargement, tels que les compilateurs JIT, de classe peuvent tirer parti des méthodes finales. Par conséquent, les méthodes déclarées finales pourraient avoir certains avantages de performance.
http://www.javaperformancetuning.com/Tips/final.shtml
Oh et une autre bonne ressource
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.