采用PHP函數(shù)memory_get_usage獲取PHP內(nèi)存清耗量的方法
更新時(shí)間:2011年12月06日 01:10:20 作者:
PHP性能優(yōu)化過程中需要獲取PHP內(nèi)存消耗,使用memory_get_usage()函數(shù)可獲取當(dāng)前的內(nèi)存消耗情況,函數(shù)使用簡(jiǎn)單,這里討論一下memory_get_usage()函數(shù)的用法與實(shí)例
一,函數(shù)原型
int memory_get_usage ([ bool $real_usage = false ] )
二,版本兼容
PHP 4 >= 4.3.2, PHP 5
三,基礎(chǔ)用法與實(shí)例
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ǔ)用法與實(shí)例
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時(shí)提示內(nèi)存位置訪問無效的解決辦法和思路分析
- PHP中使用unset銷毀變量并內(nèi)存釋放問題
- phpExcel導(dǎo)出大量數(shù)據(jù)出現(xiàn)內(nèi)存溢出錯(cuò)誤的解決方法
- 關(guān)于PHP內(nèi)存溢出問題的解決方法
- 解析PHP中的內(nèi)存管理,PHP動(dòng)態(tài)分配和釋放內(nèi)存
- 解析PHP中的unset究竟會(huì)不會(huì)釋放內(nèi)存
- php統(tǒng)計(jì)時(shí)間和內(nèi)存使用情況示例分享
- php出現(xiàn)內(nèi)存位置訪問無效錯(cuò)誤問題解決方法
- PHP腳本內(nèi)存泄露導(dǎo)致Apache頻繁宕機(jī)解決方法
- PHP通過內(nèi)置函數(shù)memory_get_usage()獲取內(nèi)存使用情況
- php查詢mysql大量數(shù)據(jù)造成內(nèi)存不足的解決方法
- php實(shí)現(xiàn)讀取內(nèi)存順序號(hào)
- 解決PHP里大量數(shù)據(jù)循環(huán)時(shí)內(nèi)存耗盡的方法
- PHP內(nèi)存使用情況如何獲取
相關(guān)文章
使用PHP反射機(jī)制來構(gòu)造"CREATE TABLE"的sql語句
今天小編就為大家分享一篇關(guān)于使用PHP反射機(jī)制來構(gòu)造"CREATE TABLE"的sql語句,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03php實(shí)現(xiàn)多維數(shù)組中每個(gè)單元值(數(shù)字)翻倍的方法
這篇文章主要介紹了php實(shí)現(xiàn)多維數(shù)組中每個(gè)單元值(數(shù)字)翻倍的方法,涉及php操作數(shù)組的技巧,需要的朋友可以參考下2015-02-02利用PHP計(jì)算有多少小于當(dāng)前數(shù)字的數(shù)字方法示例
這篇文章主要給大家介紹了關(guān)于利用PHP計(jì)算有多少小于當(dāng)前數(shù)字的數(shù)字的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08Linux平臺(tái)php命令行程序處理管道數(shù)據(jù)的方法
這篇文章主要介紹了Linux平臺(tái)php命令行程序處理管道數(shù)據(jù)的方法,結(jié)合實(shí)例形式分析了Linux平臺(tái)管道提示符的功能及php使用命令行處理管道數(shù)據(jù)的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-11-11PHP實(shí)現(xiàn)設(shè)計(jì)模式中的抽象工廠模式詳解
這篇文章主要介紹了PHP實(shí)現(xiàn)設(shè)計(jì)模式中的抽象工廠模式詳解,抽象工廠模式(Abstact Factory)是一種常見的軟件設(shè)計(jì)模式,需要的朋友可以參考下2014-10-10PHP實(shí)現(xiàn)微信JS-SDK接口選擇相冊(cè)及拍照并上傳的方法
這篇文章主要介紹了PHP實(shí)現(xiàn)微信JS-SDK接口選擇相冊(cè)及拍照并上傳的方法,涉及php微信接口的調(diào)用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-12-12PHP在線調(diào)試執(zhí)行的實(shí)現(xiàn)方法(附demo源碼)
這篇文章主要介紹了PHP在線調(diào)試執(zhí)行的實(shí)現(xiàn)方法,實(shí)例分析了PHP實(shí)現(xiàn)在線調(diào)試運(yùn)行的原理,步驟與具體實(shí)現(xiàn)代碼,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2016-04-04