PHP memory_get_usage大于memory_limit

时间:2013-08-07 13:10:49

标签: php memory-management memory-limit

我的PHP应用程序运行速度有点慢,目前内存效率不高。我的整个服务器经常停机,我想我应该责备这个应用程序。我以为我会监视内存使用情况并检查我有多少作为限制:

echo 'Memory in use: ' . memory_get_usage() . ' ('. memory_get_usage()/1024 .'M) <br>';
echo 'Peak usage: ' . memory_get_peak_usage() . ' ('. memory_get_peak_usage()/1024 .'M) <br>';
echo 'Memory limit: ' . ini_get('memory_limit') . '<br>';

这显示以下内容:

Memory in use: 629632 (614.921875M) 
Peak usage: 635696 (620.796875M) 
Memory limit: 128M

怎么会这样?使用的内存是否大于内存限制?要么是某些东西真的坏了,要么根本不理解memory_limit设置是如何工作的(或memory_get_usage()

谢谢大家。

1 个答案:

答案 0 :(得分:7)

memory_get_usage以字节为单位返回它,你在计算的内容实际上在kB中。再按1024除以MB

同样适用于memory_get_peak_usage

e.g。

echo 'Memory in use: ' . memory_get_usage() . ' ('. ((memory_get_usage() / 1024) / 1024) .'M) <br>';