【问题标题】:Profiling advice - trying to pinpoint site loading issue分析建议 - 试图查明网站加载问题
【发布时间】:2012-02-21 18:45:57
【问题描述】:

我已经接管了一个 wordpress 电子商务(尽管这个问题更多地是关于一般的分析)网站,它有一个性能问题,似乎只影响 CMS 管理部分的一个特定区域。当试图编辑具有大量附加属性的特定类型的产品时,页面实际上会导致浏览器在 99% 的情况下崩溃。我预计这将归结为导致瓶颈的 MySQL 查询,但是当我分析数据库时,我得到了以下结果:

查询总数:174 - MySQL 查询的总时间:0.11370

这表明瓶颈正在其他地方发生,但我不确定它可能在哪里。如果我在页面上运行 YSlow,没有什么可以解释问题的激烈,尽管加载了大约 20 个脚本和样式表,所以可以在那里进行一些优化。我将启用一个可以提高 PHP 性能的操作码缓存库,但是我还能做些什么来尝试找出这里的问题吗?谢谢。

【问题讨论】:

  • 如果浏览器崩溃,可能有太多 HTML 以特定方式导致浏览器崩溃。还是“让浏览器崩溃”并没有真正让浏览器崩溃?
  • 嗯,在 Chrome 中,页面会冻结几分钟,有时会恢复,有时不会。
  • 页面是否已完全加载?您是否禁用了 javascripts?
  • 我已经在启用和不启用 JS 的情况下进行了测试。没有 JS,页面似乎加载更一致,尽管仍然需要很长时间
  • 度量以及页面的输出大小。我怀疑它很大。暂时禁用 javascript 以减少副作用。

标签: php mysql wordpress profiling


【解决方案1】:

firebug(firefox 的附加组件)是我所知道的查找此类问题的最佳工具。您还可以安装另一个名为“page speed”的插件。它会准确地告诉你哪个部分需要更长的时间来加载。 另一种选择是使用“时间”打印来调试您的代码,并查看哪个具有最大的时间间隔: http://php.net/manual/en/function.microtime.php

【讨论】:

    【解决方案2】:

    使用像 Xdebug 这样的 Profiler...如果问题不是它们在数据库中,我可能是 PHP 有问题...找出代码的哪一部分花费的时间更长...Xdebug 也会告诉您每个函数调用所花费的时间作为内存使用。

    【讨论】:

      【解决方案3】:

      上次我分析 wordpress 时,我花了一打基于microtime(1) 的计算才发现加载时间只有 2.5 秒一半的地方。它正在加载和解析 .mo 本地化文件。

      安装 APC 缓存也带来了可观的收益,因为事实证明 wordpress 是一个臃肿的怪物,需要花费大量时间来解析它的代码。

      【讨论】:

        【解决方案4】:

        我愿意

        • 使用Firebug 或 Chrome 的网络面板查看是页面还是 JavaScript/CSS/imges 导致了速度下降(前端)
        • 使用curl查看页面需要多长时间:time curl -b PHPSESSID=123 http://example.com/wp-admin/
        • 启用/安装Xdebug 并打开分析。使用KCachegrind 查看哪些函数导致了最大的延迟。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-02-20
          • 2023-04-03
          • 1970-01-01
          • 2013-02-02
          相关资源
          最近更新 更多