Utilizziamo Apache Velocity per i modelli di siti Web e alcuni di essi si stanno complicando. Hai notato problemi di prestazioni con determinate funzionalità di Velocity? E come li hai aggirati?Problemi di prestazioni di Apache Velocity?
risposta
La funzione più importante che le persone trascurano spesso è il caching del caricatore di risorse (disattivato per impostazione predefinita) che aumenta un po 'le prestazioni (file.resource.loader.cache
).
La direttiva #parse
ha anche un impatto notevole sulle prestazioni, provare a utilizzarla solo per evitare la duplicazione del codice, non solo per dividere i modelli in parti logiche.
Se i modelli diventano abbastanza complessi in termini di logica, forse sarebbe possibile spostare quella logica in un controller e fornire un modello con struttura di dati pronta per il rendering.
Non ho notato alcun calo di prestazioni da Velocity, quando stavo testando la velocità Velocity prima di passare da JSP erano costantemente il 50% più veloci su qualsiasi modello che ho lanciato. Attualmente generiamo siti con migliaia di pagine renderizzate da modelli Velocity ed è velocissimo, molto soddisfatto delle prestazioni.
Lo spostamento delle chiamate verso il codice Java che produce lo stesso valore ogni volta al di fuori dei cicli può migliorare anche le prestazioni. Questo sembrava aiutare nella mia situazione. Il compilatore Hotspot di Java lo fa per codice Java - non sono sicuro che questa funzionalità esista nel motore Velocity. –
Prima di tutto utilizzare l'ultima libreria Velocity (1.7 o 1.6.4). La versione 1.5 contiene alcuni problemi di prestazioni gravi!
qui è anche la lista dei parametri che è necessario smanettare sul produzione ambiente:
- velocimacro.library.autoreload - deve essere impostato su falso
- file.resource. loader.cache - deve essere impostato su true
- fi le.resource.loader.modificationCheckInterval - dovrebbe essere impostato a -1
- parser.pool.size dovrebbe essere aumentato se il valore di default non è abbastanza grande (il valore predefinito è 20)
Noi prova a memorizzare nella cache il numero byte[]
nel nodo ASTText
per evitare di codificare troppo il testo di output.
+1 Sei di Taobao.com? –
Puoi esporre più dettagli come l'hai fatto? –
Penso di aver saputo come l'hai fatto. Grazie ~! Ma perché dici che codificherà il testo di output troppe volte. Non lo capisco –
- 1. Problemi di prestazioni di Apache Mahout
- 2. "modello principale" di Apache Velocity?
- 3. Apache Velocity: hashtable?
- 4. Ciclo foreach di Apache Velocity #continue
- 5. Prestazioni di Apache Drill
- 6. Problemi di prestazioni SwiftyJSON
- 7. Come eseguire l'escape XML con Apache Velocity?
- 8. minuscola prima lettera in Apache Velocity
- 9. Come disabilitare l'autoconfigurazione di Spring Boot per Apache Velocity?
- 10. Utilizzo di Apache Velocity con Spring Framework 3.2.4
- 11. Problemi di prestazioni con SSRS
- 12. Problemi di prestazioni usando System.js
- 13. EC2 problemi di prestazioni ELB
- 14. Problemi di prestazioni .NET OpenXML
- 15. Prestazioni POI Apache
- 16. Problemi di prestazioni SQL/EF di Azure
- 17. Prestazioni di Apache Mod Mono (mod_mono)?
- 18. Problemi di errore 404 personalizzati con Apache
- 19. Come creare una direttiva personalizzata per Apache Velocity
- 20. Controllare se una mappa è vuota in Apache Velocity
- 21. Uso di Velocity con piastrelle e molla
- 22. Droggable JS Bootstrap modal - problemi di prestazioni
- 23. Il problema ha problemi di prestazioni?
- 24. jQuery Mobile e PhoneGap Problemi di prestazioni
- 25. UIView self.layer.shouldRasterize = YES e problemi di prestazioni
- 26. Problemi comuni di prestazioni su Android?
- 27. VS2010 + Problemi di prestazioni del ripetitore 5
- 28. Symfony2 e Twig rendono problemi di prestazioni
- 29. HTML5/jQuery metronome - problemi di prestazioni
- 30. Problemi di prestazioni nella scrittura di file di grandi dimensioni?
Se si hanno dubbi, quindi profilo. Con un profiler. Non c'è bisogno di indovinare. – skaffman