如何获知PHP程序占用多少内存(memory_get_usage)


在PHP中,你可以使用内置函数`memory_get_usage()`来获取当前脚本已分配的内存量。这个函数返回的是整数,表示以字节为单位的内存使用量。

下面是一个简单的例子,展示了如何在PHP脚本中使用`memory_get_usage()`函数:


<?php
// 初始时,获取并输出内存使用量
echo "初始内存使用量: " . memory_get_usage() . " bytes\n";

// 执行一些操作,比如创建一个大的数组
$bigArray = range(0, 1000000); // 创建一个包含1000001个元素的数组

// 再次获取并输出内存使用量
echo "执行操作后内存使用量: " . memory_get_usage() . " bytes\n";

// 如果你希望以更友好的单位(如KB、MB)显示内存使用量,你可以这样做:
function formatMemoryUsage($bytes) {
    $units = array('B', 'KB', 'MB', 'GB', 'TB', 'PB');
    $i = 0;
    while ($bytes >= 1024) {
        $bytes /= 1024;
        $i++;
    }
    return round($bytes, 2) . ' ' . $units[$i];
}

echo "执行操作后内存使用量(格式化): " . formatMemoryUsage(memory_get_usage()) . "\n";
?>

这个脚本首先输出了脚本开始执行时的内存使用量,然后创建了一个包含大量元素的数组以模拟内存使用量的增加,接着再次输出了内存使用量。最后,通过自定义的`formatMemoryUsage`函数,以更友好的单位(KB、MB等)输出了内存使用量。