【问题标题】:How to track down slow code in PHP如何在 PHP 中跟踪慢代码
【发布时间】:2014-03-06 06:37:23
【问题描述】:

我在我的 Ubuntu 服务器上安装了一个开源 PHP 项目并让它运行。但是,页面加载速度极慢。连接到 mysql 数据库的 phpinfo() 页面和基本测试页面都加载得非常快。这个开源代码中有大量的包含文件、日志文件和一些 curl 调用。我可以使用哪些策略/工具来追踪缓慢的根源?

【问题讨论】:

  • 显然有人(非开发人员?)投票结束此问题为“离题:推荐或查找工具、库或最喜欢的非现场资源”。如果有一个可以说是合适的选择 - 但没有,并且知道如何调试/分析代码肯定是 SO 的主题。
  • @symcbean 多么不相关 =)。
  • 除了标签之外,这与 cake 有什么关系?开源项目可以是任何东西。

标签: php performance cakephp


【解决方案1】:

您需要分析存在性能问题的页面。可以使用 php-extension xdebugkcachegrind 来完成。

按照以下步骤操作:

  1. 通过sudo apt-get install php5-xdebug在你的Ubuntu服务器上安装php5-xdebug包。
  2. 配置 xdebug.profiler_enable_trigger 参数。看official manual
  3. 在本地计算机上安装 kcachegrind 包:sudo apt-get install kcachegrind
  4. 使用GET 参数XDEBUG_PROFILE=1 启动慢速页面。见related question
  5. 将生成的配置文件日志复制到本地计算机并在 kcachegrind 中打开。

一些注意事项:

  • 安装 php5-xdebug 软件包后,您需要重新启动 http-server(或 php-fpm 守护程序。取决于您服务器上安装的软件)。
  • 分析过程的正确位置是测试环境,而不是生产环境。

【讨论】:

    【解决方案2】:

    您可以使用 xdebug 并通过分析器运行它。您可以通过 webgrind 可视化分析器结果。

    以下教程和工具会很有用:

    【讨论】:

      【解决方案3】:

      安装调试工具包

      确定的答案是使用 xdebug 分析,它可以为您提供大量关于正在发生的事情的信息。不过也有DebugKit

      DebugKit 是任何 CakePHP 开发人员的必备工具,而且非常易于安装(它只是一个插件)。

      与问题最相关的功能是计时器面板:

      了解请求的哪一部分速度较慢,可以让您将注意力集中在问题所在。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多