内存使用情况
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
请注意,该值只会上升或保持不变。