代码之家  ›  专栏  ›  技术社区  ›  Adam Ness

分析PHP代码

  •  33
  • Adam Ness  · 技术社区  · 16 年前

    我想找到一种方法来确定php中的每个函数和php中的每个文件的运行时间。我有一个旧的遗留的PHP应用程序,我试图找到其中的“粗糙点”,所以我想客观地找到加载哪些例程和页面需要很长时间。

    是否有任何预先制作的工具允许这样做,或者我是否一直在使用微时间,并构建自己的分析框架?

    9 回复  |  直到 9 年前
        1
  •  42
  •   SchizoDuckie    16 年前

    上周我确实做了一些优化工作。xdebug确实是前进的道路。

    只需启用它作为扩展(出于某些原因,它不适用于我的Windows计算机上的Ze_扩展),使用xdebug.profiler设置php.ini,并使用xdebug_profile=1调用普通URL作为get或post变量来分析该请求。再简单不过了!

    而且,我真的可以推荐 webgrind ,一个基于Web(PHP)的Google夏季代码项目,可以读取和解析您的调试输出文件!

        2
  •  7
  •   petsagouris    14 年前

    这是一个很好的提示。

    使用xdebug分析PHP时,请设置profiler_触发器,并在bookmarklet中使用它来触发xdebug profiler;)

    javascript:if(document.URL.indexOf('XDEBUG_PROFILE')<1){var%20sep=document.URL.indexOf('?');sep%20=%20(sep<1)?'?':'&';window.location.href=document.URL+sep+'XDEBUG_PROFILE';}
    
        3
  •  6
  •   Community CDub    8 年前

    看看 xdebug ,允许进行深入分析。和 here's an explanation 如何使用xdebug。

    xdebug的profiler是一个强大的工具 这让你有能力分析 您的PHP代码并确定 瓶颈或一般看哪个 您的部分代码很慢,可能 使用提速。中的剖析器 xdebug 2输出分析信息 以cachegrind兼容的形式 文件。

    夸赞 SchizoDuckie 对于 mentioning Webgrind . 这是我第一次听说。非常有用(+1)。

    否则,您可以使用 kcachegrind 在Linux或其较小的衍生工具上 wincachegrind . 这两个应用程序都将读取xdebug的分析器输出文件,并对它们进行总结,以供您查看。

        4
  •  3
  •   davetron5000    16 年前

    我曾经看到一个银幕演员 Zend Core . 看起来不错,但它确实很贵,我不知道这是否是你的问题。

        5
  •  3
  •   Marc Gear    16 年前

    xdebug很不错,但它不太容易使用或设置imo。

    Zend Studio内置的分析器非常容易使用。你只需点击浏览器工具栏上的一个按钮, 巴姆 你有你的代码配置文件。也许它不像一个恶作剧垃圾场那么深奥,但对我来说它总是足够好的。

    您也需要设置Zend平台,但这对于开发使用来说是直接和免费的——不过,您仍然需要支付Zend Studio许可证的费用。

        6
  •  2
  •   Greg    16 年前

    xdebug的分析函数非常好。如果您让它以valgrind格式保存输出,那么您可以使用类似kcachegrind或wincachegrind的东西来查看调用图,如果您是一个可视化的人,那么就可以更容易地计算出正在发生的事情。

        7
  •  2
  •   lew    16 年前

    除了具有非常强大的实时调试功能外,Nusphere的phped(www.nusphere.com)还有一个内置的探查器,只需从IDE中单击一下即可运行。

        8
  •  1
  •   MattBelanger    16 年前

    如果安装xdebug扩展,可以将其设置为导出运行配置文件,可以在WincacheGrind(在Windows上)中读取。我记不起在Linux上读取文件的应用程序的名称。

        9
  •  0
  •   andy.gurin    16 年前

    最简单的解决方案是使用Zend探查器,您不需要Zend平台来使用它,您可以直接从浏览器运行它,它非常精确,具有您所需的最多功能,并且集成在Zend Studio中。