渲染haml部分需要很长时间......为什么?

dat*_*tor 5 performance haml view ruby-on-rails-3

我的 ruby​​ 1.8.7 上的 Rails 3.0 应用程序包含 Haml 3.1.3。大多数视图都是 haml 模板,在我的机器上以生产模式呈现它们大约需要 0.5-5 毫秒。

话虽如此,一些部分需要更长的时间。30-60行haml为300ms到900ms。它一定是我使用它的方式,但我怎么能调试出什么问题呢?基准是一致且可重复的。

我不确定错误的可能来源:

  • 深部分嵌套?(3-5 级)
  • 深火腿嵌套?(4-8 级)
  • 使用块助手?
  • 很多翻译?
  • 将haml与formtastic 2.0一起使用?
  • 将表单构建器用于嵌套表单?

任何帮助表示赞赏。

dat*_*tor 1

事实证明,Formtastic 2.0 中有很多东西:

\n\n
    \n
  • 大量对象查找,未缓存
  • \n
  • 很多翻译,未缓存
  • \n
  • 使用 try\xe2\x80\xa6rescue 块极大地减慢了速度
  • \n
\n\n

Formtastic 2.1 及更高版本中已添加修复,使其速度更快。萨沙·科尼茨克的荣誉提供补丁。

\n