使用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并未提供明确的解决方案。
有没有办法改善这种表现?
答案 0 :(得分:0)
似乎ob_flush函数受到Drupal bootstrap之后的所有内容的严重影响。我启用了实体缓存模块,它将用户缓存到APCcache并休息到数据库(无法为其他实体禁用它)。缓存意味着要从数据库发送或检索查询数据。这种减速反映在ob_flush中,直到内容未完全生成/缓存或检索为止,无法刷新。
禁用实体缓存模块后。现在我看到ob_flush消耗的速度低于300毫秒,这仍然很高但不像以前那样变化和极高。