Bonjour,
Je dispose d'une fonction
void iterativelyCalled(MyType t) {//blabla}
En supposant que je dispose également d'une
Je dois donc afin d'utiliser ma fonction sul l'ensemble des elements de celle-ci utiliser un iterateur.
1 2
| Iterator<MyType> it = c.iterator();
while(it.hasNext()) iterativelyCalled(it.next()); |
L'optimisation possible est d'utiliser l'inlining, cependant ne pouvant le forcer en Java, on doit soit faire un copier coller soit esperer ou etre sur qu'il se produira.
Ma question est :
* dans le cas de l'exemple iteratif, la jvm peut elle utiliser l'inlining.
* si on bouge ce code dans la classe possedant la methode en creant une methode intermediaire, void iterativelyCalled(Collection<MyType> c) augmente t on les chances d'avoir un inlining?
J'imagine qu'une reponse peut se trouver dans les descriptions techniques des jvm mais pour l'instant je n'ai pas trouvé...
Je pose cette question dans le cadre d'une Iteration avec un iterateur mais le problème est le même quelque soit le type de boucle. (for ou for each par exemple)
Partager