Drupal ob_flush()性能缓慢且可变

时间:2015-01-20 00:53:58

标签: php performance drupal drupal-7

使用XHProf分析Drupal站点之后。我看到ob_flush()调用的变量性能,每个页面只调用一次。

首次加载第x页

Function   Calls  Ex Wall  Wall %
ob_flush   1      1,712ms  39.5%

第二次加载第x页

Function   Calls  Ex Wall  Wall %
ob_flush   1      270ms    24.5%

第三次加载第x页

Function   Calls  Ex Wall  Wall %
ob_flush   1      300ms      25.3%

在php.ini设置中,我已禁用out_buffering = 0,因为似乎是Drupal的建议

我在其上看到其他queries并未提供明确的解决方案。

有没有办法改善这种表现?

1 个答案:

答案 0 :(得分:0)

似乎ob_flush函数受到Drupal bootstrap之后的所有内容的严重影响。我启用了实体缓存模块,它将用户缓存到APCcache并休息到数据库(无法为其他实体禁用它)。缓存意味着要从数据库发送或检索查询数据。这种减速反映在ob_flush中,直到内容未完全生成/缓存或检索为止,无法刷新。

禁用实体缓存模块后。现在我看到ob_flush消耗的速度低于300毫秒,这仍然很高但不像以前那样变化和极高。

相关问题