国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

如何獲知PHP程序占用多少內存(memory_get_usage)

2024-05-04 23:13:51
字體:
來源:轉載
供稿:網友
下面是使用示例:

復制代碼 代碼如下:


<?php
echo memory_get_usage(), '<br />'; // 313864
$tmp = str_repeat('http://www.nowamagic.net/', 4000);
echo memory_get_usage(), '<br />'; // 406048
unset($tmp);
echo memory_get_usage(); // 313952
?>


上面的程序后面的注釋代表了它們的輸出(單位為 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() 函數比較各個方法占用內存的高低,來選擇使用哪種占用內存小的方法。

貼個使用函數:

復制代碼 代碼如下:


if (!function_exists('memory_get_usage'))
{
/**
+----------------------------------------------------------
* 取得內存使用情況
+----------------------------------------------------------
* @return integer
+----------------------------------------------------------
*/
function memory_get_usage()
{
$pid = getmypid();
if (IS_WIN)
{
exec('tasklist /FI "PID eq ' . $pid . '" /FO LIST', $output);
return preg_replace('/[^0-9]/', '', $output[5]) * 1024;
}
else
{
exec("ps -eo%mem,rss,pid | grep $pid", $output);
$output = explode(" ", $output[0]);
return $output[1] * 1024;
}
}
}


再來個函數使用例子:

復制代碼 代碼如下:


<?php
//memory_get_usage();
$m1 = memory_get_usage();
echo '<br /> m1:',$m1;//58096
$a = 'hello';
$b = str_repeat($a,1000);
$m2 = memory_get_usage();
echo '<br /> m2:',$m2;//63424
unset($b);
$m3 = memory_get_usage();
echo '<br /> m3:',$m3;//58456
?>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 玉龙| 东平县| 定州市| 修武县| 永城市| 南川市| 庆安县| 休宁县| 遂宁市| 金塔县| 新和县| 三都| 贡觉县| 淮北市| 辽阳市| 和硕县| 鱼台县| 金塔县| 西吉县| 鹤峰县| 闽清县| 石嘴山市| 三江| 石家庄市| 察隅县| 吴忠市| 朝阳市| 汉川市| 老河口市| 彰武县| 浑源县| 平潭县| 滦南县| 泊头市| 探索| 东宁县| 无极县| 和林格尔县| 什邡市| 民勤县| 定州市|