記憶體使用情況

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

請注意,該值只會上升或保持不變。