Les classes sont chargées en mémoire puisqu'il s'agit d'un interpréteur. Et en plus, lorsque la JVM précompile certaines parties de code (avec le JIT), elle les cache en mémoire aussi.
Donc, on garde en mémoire les classes (.class) -- même celles qu'on n'utilise pas car les .jar sont chargés en entier (pas sûr)--, les dictionnaires (méta-données) des classes (nom de classe, des méthodes, des champs + accès), les bouts de code précompilés. C'est lourd tout ça... Mais il n'y a que la mémoire qui soit affectée, pas les perfs. Et tout se situe au niveau de la JVM, c'est pour ça que Eclipse compile et débugue assez rapidiment: tout se fait dans la MÊME JVM.
Avec GCJ, on élimine un des trois éléments à garder en mémoire: les .class. Ce n'est pas négligeable.
[^] # Re: Nécessité de Java?
Posté par k. stephane . En réponse à la dépêche Accord entre la FSF et les développeurs OpenOffice au sujet de l'utilisation de Java. Évalué à 2.
Les classes sont chargées en mémoire puisqu'il s'agit d'un interpréteur. Et en plus, lorsque la JVM précompile certaines parties de code (avec le JIT), elle les cache en mémoire aussi.
Donc, on garde en mémoire les classes (.class) -- même celles qu'on n'utilise pas car les .jar sont chargés en entier (pas sûr)--, les dictionnaires (méta-données) des classes (nom de classe, des méthodes, des champs + accès), les bouts de code précompilés. C'est lourd tout ça... Mais il n'y a que la mémoire qui soit affectée, pas les perfs. Et tout se situe au niveau de la JVM, c'est pour ça que Eclipse compile et débugue assez rapidiment: tout se fait dans la MÊME JVM.
Avec GCJ, on élimine un des trois éléments à garder en mémoire: les .class. Ce n'est pas négligeable.