IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 2 Java Discussion :

[Perfs] Templates freemarker


Sujet :

Struts 2 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 117
    Par défaut [Perfs] Templates freemarker
    Bonjour,

    Je suis en train de jprofiler mon application web basée sur Struts2 2.0.9.

    J'ai découvert que le cpu passe énormément de temps dans les jsp, en particulier sur les templates freemarker, qui sont utilisés pour les tags Struts2.

    J'utilise un thème qui override le thème simple. J'ai suivi les recommandations du site de Struts2 :copier les thèmes (notament le simple) dans mon dossier template.

    J'ai également ajouté la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    template_update_delay=60000
    dans un freemarker.properties qui est dans le classpath.

    J'ai vu que depuis la version 2.0.10 il y a un système de caching de ces templates au niveau de Struts. Est-ce que celà peut sensible améliorer la chose ?

    Merci pour vos infos.

  2. #2
    Invité de passage
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 1
    Par défaut
    Je confirme que j'ai le même soucis.
    Mais au-delà du caching, il me semble que l'internationalisation même d'une application basée sur Struts2 pose un peu de soucis.
    Avec la hierarchisation de la recherche de resource bundle, une methode freemarker est appelée sans cesse
    http://www.opensymphony.com/xwork/ap...dTextUtil.html

    et notamment:
    createMissesKey(String aBundleName, Locale locale)
    Creates a key to used for lookup/storing in the bundle misses cache.
    Si vous avez des idées....

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 117
    Par défaut
    Salut Buddha-Hat.

    J'ai fait plusieurs tests simples qui ont mis en évidence les points critiques où le CPU passe le plus de temps (je ne rentre pas dans le détails des méthodes...) :
    - OGNL (accès à la stack et internationalisation), mais ça reste raisonnable ramené au nombre d'invocations.
    - Freemarker pour l'accès aux templates.

    En comparant le temps de rendu d'une page jsp Tags Struts2 + OGNL vs JSTL + EL, j'observe un facteur de 4-5 en défaveur de Struts2.

    Même s'il existe d'autres moyens de rendu que les jsp, il me semble que le couple tags Struts 2 + OGNL semble être une "best practice". Struts2 n'est pas fait pour les sites perso vu sa relative complexité, mais aux vues des perfs ça ne semble pas non plus adapté à une forte montée en charge.

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/03/2013, 22h03
  2. Performance struts2 & template freemarker
    Par kakashi99 dans le forum Struts 2
    Réponses: 1
    Dernier message: 16/05/2011, 11h24
  3. [Freemarker] Charger un template depuis une url
    Par manu f dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 11/03/2010, 15h27
  4. [Continuum] FreeMarker template error!
    Par dev09 dans le forum Intégration Continue
    Réponses: 6
    Dernier message: 01/10/2007, 10h16
  5. ListView->Items->Clear() !!! Qques probl de perf
    Par Nicolas_a69 dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/08/2002, 11h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo