我的主要目标是确定在Zend下运行的Web应用程序的内存要求。我已经成功设置了xdebug,用它生成了跟踪文件并应用了tracefile-analyser.php。现在,我需要一些帮助来解释结果。我的问题是mysql所需的内存是否计入该值?它真的是每个请求的总内存消耗吗?
$ ./tracefile-analyser.php /var/www/simira/logs/profiles/trace.2043925204.xt memory-inclusive
parsing...
(49.88%)
Done.
Showing the 25 most costly calls sorted by 'memory-inclusive'.
Inclusive Own
function #calls time memory time memory
--------------------------------------------------------------------------------------------------------------------
{main} 1 1.8332 19701712 0.0016 121392
Zend_Loader_Autoloader::autoload 40 0.1397 12780440 0.0014 -11200
Zend_Loader::loadFile 23 0.0959 10480432 0.0311 3501384
Zend_Loader::loadClass 23 0.0980 10471760 0.0011 -12128
call_user_func 49 0.1063 10471704 0.0004 664
Zend_Loader_Autoloader->_autoload 23 0.0992 10470800 0.0005 0
Zend_Controller_Front->dispatch 1 1.3967 10284488 0.0022 390336
Zend_Application->run 1 1.3970 10284200 0.0000 0
Zend_Application_Bootstrap_Bootstrap->run 1 1.3969 10284200 0.0001 -392
Zend_Controller_Dispatcher_Standard->dispatch 1 1.1260 9144376 0.0001 896
include_once 43 0.0786 7331968 0.0294 3679992
...
答案 0 :(得分:1)
MySQL的内存使用情况,我想你的意思是在客户端,而不是MySQL服务器端,不包括在内,因为它不使用PHP的内存管理例程。因此,PHP(以及此后的Xdebug)无法向您显示该信息。
至于您的其他问题,是的,跟踪仅提供一个请求的确切信息。但请注意,当脚本结束时,某些内存可能已经被释放,因此不会显示在{main}的内存中。只需使用xdebug_peak_memory_usage()来查找最大使用的内存量。