VelocityEngine实例是否具有足够小的足迹以允许每次需要处理模板时构造新实例,或者最好是缓存VelocityEngine并重用实例?
答案 0 :(得分:1)
我认为它通常不会产生很大的不同,因为我实现的项目使其可配置,但最终我们没有缓存对象,而是每次都重新生成它而没有任何性能问题。
请注意,在我的情况下,速度处理很重,即渲染本身需要相当长的时间。对于较小的有效载荷,这可能是不同的。但是当Velocity在内部使用反射时,它总会在渲染时产生一些开销,因此我认为创建初始对象不应该花费太多时间。
因此,除非性能分析表明它会带来麻烦,否则我不会花太多时间在这里实施。一般的经验法则,衡量大部分时间用完的东西,然后尝试修复它!
另外,据我记得(刚刚找不到引用),VelocityEngine应该是每个定义的线程安全。但是过去一直存在关于多线程问题的错误报告(现在都修复了!)因此创建一个新引擎可以避免未来可能出现的线程问题。