我们将 Apache Velocity 用于网站模板,其中一些变得越来越复杂。您是否注意到某些 Velocity 功能的性能问题?你是如何绕过它们的?
6746 次
3 回答
12
首先使用最新的速度库(1.7 或 1.6.4)。1.5 版包含一些严重的性能问题!
以下是您必须在生产环境中调整的参数列表:
- velocimacro.library.autoreload - 应该设置为false
- file.resource.loader.cache - 应该设置为true
- file.resource.loader.modificationCheckInterval - 应该设置为-1
- 如果默认值不够大,则应增加parser.pool.size(默认值为 20)
于 2011-06-21T13:02:42.537 回答
8
人们经常忽略的最重要的特性是资源加载器缓存(默认关闭),它大大提高了性能(file.resource.loader.cache
)。
#parse
指令也有明显的性能影响,尽量只使用它来避免代码重复,而不是仅仅将模板分割成逻辑部分。
如果您的模板在逻辑方面变得非常复杂,则可以将该逻辑转移到控制器并提供准备好呈现数据结构的模板。
我没有注意到 Velocity 的任何性能下降,当我在从 JSP 切换之前测试 Velocity 速度时,在我扔给他们的任何模板上,它们总是快 50%。目前,我们生成的网站包含数千个从 Velocity 模板渲染的页面,而且速度非常快,对性能非常满意。
于 2010-03-01T00:24:58.963 回答
2
我们尝试byte[]
在ASTText
节点中缓存 以避免对输出文本进行太多次编码。
于 2011-08-11T13:15:45.847 回答