在php中要獲取php腳本使用的內存情況我們可以使用php自帶函數memory_get_usage()來實例,他可以查看當前 PHP 腳本執行占用的內存多少,下面我來來看看
memory_get_usage()官方語法
一,函數原型
int memory_get_usage ([ bool $real_usage = false ] )
二,版本兼容
PHP 4 >= 4.3.2, PHP 5
三,基礎用法與實例
我們可以直接使用 PHP函數 memory_get_usage() 查看系統分配給當前 PHP 腳本執行占用的內存多少。
<?php
echo memory_get_usage(), '<br />'; // 79248
$tmp = str_repeat('http://3aj.cn/', 4000); // 135408
echo memory_get_usage(), '<br />';
unset($tmp);
echo memory_get_usage(); // 79248
?>
程序輸出的數字單位為 byte(s),也就是當時 PHP 腳本使用的內存(不含 memory_get_usage() 函數本身占用的內存)。
由上面的例子可以看出,要想減少內存的占用,可以使用 PHP unset() 函數把不再需要使用的變量刪除。類似的還有:PHP mysql_free_result() 函數,可以清空不再需要的查詢數據庫得到的結果集,這樣也能得到更多可用內存。
PHP memory_get_usage() 函數還可以有個參數,$real_usage,其值為布爾值。默認為 FALSE,表示得到的內存使用量不包括該函數(PHP 內存管理器)占用的內存;當設置為 TRUE 時,得到的內存為不包括該函數(PHP 內存管理器)占用的內存。
格式化 memory_get_usage() 結果以 KB 為單位輸出
<?php
function convert($size){
$unit=array('b','kb','mb','gb','tb','pb');
return @round($size/pow(1024,($i=floor(log($size,1024)))),2).' '.$unit[$i];
}
echo convert(memory_get_usage(true));
?>
自定義函數獲取數組或變量值大小
代碼如下 復制代碼 <?php
所以在實際編程中,可以用 memory_get_usage() 函數比較各個方法占用內存的高低,來選擇使用哪種占用內存小的方法。
附帶個使用函數:
代碼如下 復制代碼 <?php
再來個函數使用例子:
代碼如下 復制代碼
<?php
//memory_get_usage();
$m1 = memory_get_usage();
echo '<br /> m1:',$m1; // m1:80160
$a = 'hello';
$b = str_repeat($a,1000);
$m2 = memory_get_usage();
echo '<br /> m2:',$m2; // m2:85624
unset($b);
$m3 = memory_get_usage();
echo '<br /> m3:',$m3; // m3:80600
?>
所以在實際編程中,可以用PHP memory_get_usage()比較各個方法占用內存的高低,來選擇使用哪種占用內存小的方法。