gpt4 book ai didi

PHP 内存分析

转载 作者:IT老高 更新时间:2023-10-28 11:53:35 25 4
gpt4 key购买 nike

分析 PHP 页面的内存使用情况的好方法是什么?例如,查看我的数据使用了多少内存,和/或哪些函数调用分配了最多的内存。

  • xdebug 似乎没有在其分析功能中提供内存信息。

  • xdebug 确实在其跟踪功能中提供了它。这与我想要的非常接近,除了大量的数据是压倒性的,因为它显示了每个函数调用的内存增量。如果可以将调用隐藏在某个深度以下,也许使用一些 GUI 工具,那将解决我的问题。

还有别的吗?

最佳答案

您可能知道,Xdebug 从 2.* 版本开始就放弃了内存分析支持。请在此处搜索“已删除函数”字符串:http://www.xdebug.org/updates.php

Removed functions

Removed support for Memory profiling as that didn't work properly.

所以我尝试了另一种工具,它对我来说效果很好。

https://github.com/arnaud-lb/php-memory-profiler

这是我在我的 Ubuntu 服务器上为启用它所做的:

sudo apt-get install libjudy-dev libjudydebian1
sudo pecl install memprof
echo "extension=memprof.so" > /etc/php5/mods-available/memprof.ini
sudo php5enmod memprof
service apache2 restart

然后在我的代码中:

<?php

memprof_enable();

// do your stuff

memprof_dump_callgrind(fopen("/tmp/callgrind.out", "w"));

最后用 KCachegrind 打开 callgrind.out 文件

使用 Google gperftools(推荐!)

首先通过在此处下载最新的软件包来安装 Google gperftools:https://code.google.com/p/gperftools/

那么一如既往:

sudo apt-get update
sudo apt-get install libunwind-dev -y
./configure
make
make install

现在在您的代码中:

memprof_enable();

// do your magic

memprof_dump_pprof(fopen("/tmp/profile.heap", "w"));

然后打开你的终端并启动:

pprof --web /tmp/profile.heap

pprof 将在您现有的浏览器 session 中创建一个新窗口,如下所示:

PHP memory profiling with memprof and gperftools

Xhprof + Xhgui(我认为最好的配置 CPU 和内存)

使用 XhprofXhgui,您还可以分析 CPU 使用情况,或者如果这是您目前的问题,则只分析内存使用情况。这是一个非常完整的解决方案,它可以让您完全控制,并且日志可以写入 mongo 或文件系统中。

更多详情see my answer here .

黑火

Blackfire 是 SensioLabs 的 PHP 分析器,Symfony2 开发人员 https://blackfire.io/

如果您使用 puphpet要设置您的虚拟机,您会很高兴知道它受支持 ;-)

关于PHP 内存分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/880458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com