ruby 1.8.7上的My Rails 3.0应用程序包含Haml 3.1.3。大多数视图都是haml模板,在生产模式下在我的机器上渲染它们需要大约0.5-5ms。
话虽如此,一些部分需要更长的时间。 30-60行haml 300ms至900ms。它必须是我如何使用它的方式,但我怎么能调试什么是错的?基准测试具有一致性和可重复性。
我不确定错误的可能来源:
感谢任何帮助。
答案 0 :(得分:1)
事实证明,Formtastic 2.0中有很多东西:
已经向Formtastic 2.1及更高版本添加了修复,使其更快。感谢Sascha Konietzke提供补丁。
答案 1 :(得分:1)
最近解决这个问题的方法是Hamlit,这是一种高性能的Haml实现,在性能设计方面存在一些限制。声称8.24倍加速。
此外,不是特定于Haml,而是查看multi-fetch gem列表。
答案 2 :(得分:0)
很可能是垃圾收集。见这些帖子:
如果您正在使用REE 1.8.7(它也修复了内存泄漏,那么您应该这样做),然后you can tune your GC settings。我上周刚刚做了这个,我们的回复时间下降了50%。
答案 3 :(得分:0)
加入.bashrc
:
export RUBY_GC_HEAP_INIT_SLOTS=1000000
export RUBY_HEAP_SLOTS_INCREMENT=500000
export RUBY_HEAP_SLOTS_GROWTH_FACTOR=1
export RUBY_GC_MALLOC_LIMIT=50000000
来源,并重新启动服务器
$> source ~/.bashrc
$> rails s
根据您的问题,这可能会使您的局部渲染速度更快(在我的情况下,平均渲染时间缩短了x3)。