内存使用情况

PHP 的运行时内存限制是通过 INI 指令 memory_limit 设置的。此设置可防止任何单个执行 PHP 占用过多内存,从而使其耗尽其他脚本和系统软件。内存限制默认为 128M,可以在 php.ini 文件中或在运行时更改。它可以设置为没有限制,但这通常被认为是不好的做法。

运行时使用的确切内存使用量可以通过调用 memory_get_usage() 来确定。它返回分配给当前运行脚本的内存字节数。从 PHP 5.2 开始,它有一个可选的布尔参数来获取总分配的系统内存,而不是 PHP 正在使用的内存。

 <?php
 echo memory_get_usage() . "\n";
 // Outputs 350688 (or similar, depending on system and PHP version)

 // Let's use up some RAM
 $array = array_fill(0, 1000, 'abc');

 echo memory_get_usage() . "\n";
 // Outputs 387704

 // Remove the array from memory
 unset($array);

 echo memory_get_usage() . "\n";
 // Outputs 350784

现在 memory_get_usage 在运行时为你提供内存使用。在调用此函数之间,你可以在内存中分配和释放其他内容。要获得最多使用的内存量,请致电 memory_get_peak_usage()

<?php
echo memory_get_peak_usage() . "\n";
// 385688
$array = array_fill(0, 1000, 'abc');
echo memory_get_peak_usage() . "\n";
// 422736
unset($array);
echo memory_get_peak_usage() . "\n";
// 422776

请注意,该值只会上升或保持不变。