Estamos utilizando Apache Velocity para plantillas de sitios web y algunas de ellas se están volviendo complejas. ¿Has notado algún problema de rendimiento con ciertas características de Velocity? ¿Y cómo te las arreglaste con ellos?¿Errores de rendimiento de velocidad de Apache?
Respuesta
La característica más importante que las personas a menudo pasan por alto es el almacenamiento en memoria caché del cargador de recursos (desactivado por defecto) que aumenta bastante el rendimiento (file.resource.loader.cache
).
#parse
directiva también tiene un impacto notable en el rendimiento, intente usarlo solo para evitar la duplicación de código, no solo para dividir las plantillas en partes lógicas.
Si sus plantillas se vuelven bastante complejas en términos de lógica, tal vez sería posible cambiar esa lógica a un controlador y proporcionar una plantilla con estructura de datos lista para representar.
No noté ningún cambio en el rendimiento de Velocity, cuando estaba probando la velocidad de velocidad antes de cambiar de JSP, eran constantemente un 50% más rápidos en cualquier plantilla que les arrojara. Actualmente generamos sitios con miles de páginas renderizadas a partir de plantillas de Velocity y es muy rápido, muy satisfecho con el rendimiento.
El desplazamiento de llamadas al código Java que produce el mismo valor cada vez fuera de los bucles también puede mejorar el rendimiento. Esto pareció ayudar en mi situación. El compilador Hotspot de Java hace esto para el código Java: no estoy seguro de si esta característica existe en el motor Velocity. –
Antes que nada utilice la última biblioteca de velocidad (1.7 o 1.6.4). ¡La versión 1.5 contiene algunos problemas graves de rendimiento!
También aquí es la lista de parámetros que debe pellizcar en la producción medio ambiente:
- velocimacro.library.autoreload - se debe establecer en falsa
- file.resource. loader.cache - debe establecerse en true
- fi le.resource.loader.modificationCheckInterval - debe establecerse en -1
- parser.pool.size se debe aumentar si el valor por defecto no es lo suficientemente grande (valor por defecto es 20)
Nosotros intente guardar en caché el byte[]
en el nodo ASTText
para evitar la codificación del texto de salida demasiadas veces.
+1 ¿Eres de Taobao.com? –
¿Puede exlain más detalles de cómo lo hizo? –
Creo que he sabido cómo lo hiciste. Gracias ~! Pero por qué dices que codificará el texto de salida demasiadas veces. No lo entiendo –
- 1. ¿Velocidad de rendimiento de KVO y NSNotifications?
- 2. (Apache) Embellecedor de registro de errores
- 3. Buscador de errores de rendimiento de Java
- 4. Pruebas de rendimiento de Apache vs nodejs
- 5. Errores comunes de rendimiento en Android?
- 6. Actualización de rendimiento: mejor velocidad de cuadro en WPF
- 7. RabbitMQ Rendimiento de mensajería transitoria de alta velocidad
- 8. registro de errores en la velocidad en los sistemas Linux
- 9. Nested Parallel.For() loops velocidad y rendimiento
- 10. Ventajas de rendimiento de los conectores nativos de Apache Tomcat
- 11. Servidor Apache - múltiples directorios, diferentes registros de errores
- 12. Apache POI Java Excel Rendimiento para hojas de cálculo grandes
- 13. ¿Accediendo a los valores constantes de una plantilla de velocidad de Apache?
- 14. Velocidad de inserción Sql
- 15. Scrum: productos inacabados y velocidad de velocidad
- 16. ¿Cómo limitar la velocidad de carga de archivos en php o apache?
- 17. Velocidad/costo de almacenamiento local
- 18. Efecto de rendimiento de habilitar la directiva de registro de tiempo de respuesta de Apache
- 19. Velocidad de ejecución roscada de LOCK CMPXCHG
- 20. Creando Portada de vídeo - Mejora del rendimiento de velocidad - AVAsset - iPhone
- 21. rendimiento de rendimiento anidado con IEnumerable
- 22. Cómo hacer que las entradas de registro de errores de apache sean más largas
- 23. Velocidad de lectura aleatoria de Cassandra
- 24. Rendimiento de Silverlight
- 25. Instalación de Apache 2.2
- 26. Cómo eliminar elementos duplicados de una lista usando la velocidad Apache
- 27. Velocidad de Apache - getTemplate(). cómo pasar cadena/objeto en lugar del archivo .VM
- 28. ¿Cómo puedo implementar la limitación de velocidad con Apache? (solicitudes por segundo)
- 29. Aumente la velocidad de desarrollo de Android
- 30. ¿Cómo rastrear 500 errores del servidor con Apache + mod_python + Django?
Si tiene dudas, perfile. Con un perfilador. No es necesario adivinar. – skaffman