記憶體使用情況
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
請注意,該值只會上升或保持不變。