Apache Velocity的性能陷阱?

Pet*_*rta 10 performance velocity

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

小智 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. 如果默认值不够大,则应增加parser.pool.size(默认值为20)


ser*_*erg 8

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

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

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

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