Apache Velocity的性能陷阱?

时间:2010-02-25 14:27:09

标签: velocity performance

我们正在将Apache Velocity用于网站模板,其中一些变得越来越复杂。您是否注意到某些Velocity功能存在任何性能问题?你是怎么绕过他们的?

3 个答案:

答案 0 :(得分:12)

首先使用最新的速度库(1.7或1.6.4)。 版本1.5包含一些严重的性能问题!

此处还有您必须在生产环境中调整的参数列表:

  1. velocimacro.library.autoreload - 应设为 false
  2. file.resource.loader.cache - 应设为 true
  3. file.resource.loader.modificationCheckInterval - 应设置为 -1
  4. 如果默认值不够大(默认值为20),则应增加
  5. parser.pool.size

答案 1 :(得分:7)

人们经常忽略的最重要的功能是资源加载器缓存(默认情况下是关闭),它可以提升性能(file.resource.loader.cache)。

#parse指令也有明显的性能影响,尝试仅使用它来避免代码重复,而不是仅仅将模板拆分为逻辑部分。

如果您的模板在逻辑方面变得非常复杂,那么可以将该逻辑转移到控制器并提供准备渲染数据结构的模板。

我没有注意到Velocity的任何性能下降,当我在从JSP切换之前测试Velocity速度时,他们在我投掷的任何模板上的速度总是快50%。目前,我们生成的网站包含数千个从Velocity模板渲染的页面,速度非常快,对性能非常满意。

答案 2 :(得分:2)

我们尝试在byte[]节点中缓存ASTText,以避免对输出文本进行太多次编码。