Je suis chargé de maintenir une application basée sur JSP, en cours d'exécution sur IBM WebSphere 6.1 (IBM J9 JVM). Toutes les pages JSP ont une référence statique incluent une référence et dans cet inclusion, des méthodes java statiques sont déclarées. Ils sont inclus dans toutes les pages JSP pour offrir un "accès facile" à ces méthodes statiques utilitaires. Je sais que c'est une très mauvaise façon de travailler et je travaille pour changer cela. Mais, juste pour la curiosité, et pour soutenir mes efforts pour changer cela, je me demande comment ces méthodes statiques "dupliquées" sont optimisées par le compilateur JVM JIT. P>
3 Réponses :
Vous pouvez utiliser des importations statiques à partir d'une seule classe: <% @ Import Import = "Statique FOO *"%>. P>
alors vous n'avez plus tout ce qui est de la duplication. Et autre que l'importation, vous n'avez pas besoin de toucher AYTHINS SQUOW. P>
Chaque page JSP est compilée à une classe unique. Le code fourni sera donc également compilé dans des classes distinctes. Le JIT ne consolidera pas les diverses copies du code en un. p>
Pour éviter cela, vous pouvez mettre le code importé dans une vraie classe Java et importer cela dans le JSP. Ensuite, il n'y aura pas de duplicate, car vous réutilisez la même classe. P>
La réponse de MDMA est correcte pour la JVM actuelle, mais doit être qualifiée dans quelques respects. P>
Les JITS dans les futures JVMS pourraient éventuellement supporter des optimisations agressives pour réduire l'empreinte mémoire du code natif. P> li>
Le Flipside est que si vous avez des milliers de JSP distincts, il y a de fortes chances que les frais généraux de quelques méthodes statiques par classe JSP ne produisent pas beaucoup de différence pour votre empreinte mémoire de votre WebApp. P> li> ol>
Pourriez-vous rafraîchir mon esprit et dites-moi quelle est la syntaxe pour
statique include code>?
Il s'agit d'une inscription à l'aide d'une directive JSP (<% @ page inclut = "includefile.inc"%>). Le contenu de "inclusefile.inc" est statiquement inclus dans le code JSP lors de la compilation. Une dynamique include peut être effectuée à l'aide d'une balise JSP () où vous pouvez faire référence à une URL et le contenu est inclus à l'exécution. L'utilisation de la balise que vous pouvez également choisir de faire une statique include.
+1 pour le soutien. J'ai été exactement où vous êtes maintenant. La seule différence, dans le projet que j'ai héritée, c'était que ces méthodes code> statiques code> étaient coupées et pâtes dans chaque page JSP.