memory_get_usage() 返回腳本當前佔用的記憶體(位元組)。預設不含 PHP 內存管理器開銷;傳入 true 則包含管理器開銷,反映系統實際分配量。
<?php
echo memory_get_usage(), '<br />'; // 143952
$tmp = str_repeat('https://blog.example.com/', 4000);
echo memory_get_usage(), '<br />'; // 232048
unset($tmp);
echo memory_get_usage(); // 143952
?>
file_get_contents() 超大文件,改用 fopen() + fgets() 或生成器逐行處理。| 參數值 | 含義 | 典型數值關係 |
|---|---|---|
| false(預設) | Zend 內存管理器分配給腳本的記憶體 | 較小 |
| true | 作業系統分配給 PHP 進程的實際物理記憶體(RSS) | 較大,含管理器元數據、緩衝區碎片 |
開發階段建議用 false 關注業務邏輯本身的記憶體增長;上線前用 true 評估進程真實佔用,配合 memory_limit 設定安全閾值。
microtime(true) 計算耗時。memory_get_usage() 記錄峰值與當前值。slow_query_log)+ EXPLAIN 分析執行計劃。ini_set('memory_limit', '256M') 留有餘地,避免 OOM Killer 介入。