在使用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 的建议
我看到其他查询没有提供明确的解决方案。
有没有办法提高这种性能?
看起来ob_flush功能受到Drupal引导后所有内容的严重影响。我启用了实体缓存模块,该模块将用户缓存到 APCcache 并将其余缓存缓存到数据库(无法为其他实体禁用它)。缓存意味着查询数据要么发送,要么从数据库中检索。这种减慢反映在ob_flush因为在内容未完全生成/缓存或检索之前,无法刷新内容。
禁用实体缓存模块后。现在我看到ob_flush消耗低于 300 毫秒,这仍然很高,但不像以前那样可变和非常高。