采用PHP函數(shù)memory_get_usage獲取PHP內(nèi)存清耗量的方法
更新時間:2011年12月06日 01:10:20 作者:
PHP性能優(yōu)化過程中需要獲取PHP內(nèi)存消耗,使用memory_get_usage()函數(shù)可獲取當(dāng)前的內(nèi)存消耗情況,函數(shù)使用簡單,這里討論一下memory_get_usage()函數(shù)的用法與實例
一,函數(shù)原型
int memory_get_usage ([ bool $real_usage = false ] )
二,版本兼容
PHP 4 >= 4.3.2, PHP 5
三,基礎(chǔ)用法與實例
1,獲取當(dāng)前的內(nèi)存消耗量
<?php
echo memory_get_usage();
$var = str_repeat("liuhui", 10000);
echo memory_get_usage();
unset($var);
echo memory_get_usage();
?>
分別輸出:62328 122504 62416
說明:memory_get_usage()函數(shù)輸出的數(shù)值為bytes單位
2,格式化memory_get_usage()輸出
<?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));
?>
輸出:256 kb
3,自定義函數(shù)獲取數(shù)組或變量值大小
<?php
function array_size($arr) {
ob_start();
print_r($arr);
$mem = ob_get_contents();
ob_end_clean();
$mem = preg_replace("/\n +/", "", $mem);
$mem = strlen($mem);
return $mem;
}
$memEstimate = array_size($GLOBALS);
?>
參考資料:http://cn.php.net/manual/en/function.memory-get-usage.php
int memory_get_usage ([ bool $real_usage = false ] )
二,版本兼容
PHP 4 >= 4.3.2, PHP 5
三,基礎(chǔ)用法與實例
1,獲取當(dāng)前的內(nèi)存消耗量
復(fù)制代碼 代碼如下:
<?php
echo memory_get_usage();
$var = str_repeat("liuhui", 10000);
echo memory_get_usage();
unset($var);
echo memory_get_usage();
?>
分別輸出:62328 122504 62416
說明:memory_get_usage()函數(shù)輸出的數(shù)值為bytes單位
2,格式化memory_get_usage()輸出
復(fù)制代碼 代碼如下:
<?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));
?>
輸出:256 kb
3,自定義函數(shù)獲取數(shù)組或變量值大小
復(fù)制代碼 代碼如下:
<?php
function array_size($arr) {
ob_start();
print_r($arr);
$mem = ob_get_contents();
ob_end_clean();
$mem = preg_replace("/\n +/", "", $mem);
$mem = strlen($mem);
return $mem;
}
$memEstimate = array_size($GLOBALS);
?>
參考資料:http://cn.php.net/manual/en/function.memory-get-usage.php
您可能感興趣的文章:
- PHP 內(nèi)存緩存加速功能memcached安裝與用法
- PHP數(shù)組內(nèi)存耗用太多問題的解決方法
- 訪問php時提示內(nèi)存位置訪問無效的解決辦法和思路分析
- PHP中使用unset銷毀變量并內(nèi)存釋放問題
- phpExcel導(dǎo)出大量數(shù)據(jù)出現(xiàn)內(nèi)存溢出錯誤的解決方法
- 關(guān)于PHP內(nèi)存溢出問題的解決方法
- 解析PHP中的內(nèi)存管理,PHP動態(tài)分配和釋放內(nèi)存
- 解析PHP中的unset究竟會不會釋放內(nèi)存
- php統(tǒng)計時間和內(nèi)存使用情況示例分享
- php出現(xiàn)內(nèi)存位置訪問無效錯誤問題解決方法
- PHP腳本內(nèi)存泄露導(dǎo)致Apache頻繁宕機解決方法
- PHP通過內(nèi)置函數(shù)memory_get_usage()獲取內(nèi)存使用情況
- php查詢mysql大量數(shù)據(jù)造成內(nèi)存不足的解決方法
- php實現(xiàn)讀取內(nèi)存順序號
- 解決PHP里大量數(shù)據(jù)循環(huán)時內(nèi)存耗盡的方法
- PHP內(nèi)存使用情況如何獲取
相關(guān)文章
使用session判斷用戶登錄用戶權(quán)限(超簡單)
本篇文章是對session判斷用戶登錄用戶權(quán)限進行了詳細的分析介紹,需要的朋友參考下2013-06-06
PHP 計算代碼執(zhí)行耗時的代碼修正網(wǎng)上普遍錯誤
前幾天測試 SQLite 插入大數(shù)據(jù)量的時候, 找了一些關(guān)于計算執(zhí)行時間的代碼, 發(fā)現(xiàn)網(wǎng)上普遍流傳著這樣一份代碼2011-05-05
詳談php ip2long 出現(xiàn)負(fù)數(shù)的原因及解決方法
下面小編就為大家?guī)硪黄斦刾hp ip2long 出現(xiàn)負(fù)數(shù)的原因及解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04
PHP基于數(shù)組實現(xiàn)的堆棧和隊列功能示例
這篇文章主要介紹了PHP基于數(shù)組實現(xiàn)的堆棧和隊列功能,結(jié)合實例形式分析了php基于數(shù)組的array_push()、array_pop()、array_shift()等函數(shù)實現(xiàn)堆棧與隊列的入棧、出棧以及隊列的添加、刪除等相關(guān)操作技巧,需要的朋友可以參考下2018-01-01

