6

我的 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()

谢谢你们。

4

1 回答 1

10

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

memory_get_peak_usage 也是如此

例如

echo 'Memory in use: ' . memory_get_usage() . ' ('. ((memory_get_usage() / 1024) / 1024) .'M) <br>';
于 2013-08-07T13:21:35.353 回答