首页 php教程 php手册 获得php代码使用占用内存的情况

获得php代码使用占用内存的情况

May 25, 2016 pm 04:54 PM
explode

在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 脚本执行占用的内存多少。
 

 代码如下 复制代码

echo memory_get_usage(), '
';  // 79248
$tmp = str_repeat('http://3aj.cn/', 4000);  // 135408
echo memory_get_usage(), '
';
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 为单位输出

 代码如下 复制代码

 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)); 

 ?>


自定义函数获取数组或变量值大小

 

 代码如下 复制代码
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);
?>

所以在实际编程中,可以用 memory_get_usage() 函数比较各个方法占用内存的高低,来选择使用哪种占用内存小的方法。
 

附带个使用函数:

 

 代码如下 复制代码
if (!function_exists('memory_get_usage')) {
 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;
      }
    }
}
?> 

再来个函数使用例子:
 

 

 代码如下 复制代码

//memory_get_usage(); 
 
$m1 = memory_get_usage(); 
echo '
m1:',$m1;  // m1:80160
 
$a = 'hello'; 
$b =  str_repeat($a,1000); 
 
$m2 = memory_get_usage(); 
echo '
m2:',$m2;  // m2:85624

unset($b); 
 
$m3 = memory_get_usage(); 
echo '
m3:',$m3;  // m3:80600
?>


所以在实际编程中,可以用PHP memory_get_usage()比较各个方法占用内存的高低,来选择使用哪种占用内存小的方法。



教程网址:

欢迎收藏∩_∩但请保留本文链接。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
2 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PHP explode函数使用方法与报错解决 PHP explode函数使用方法与报错解决 Mar 10, 2024 am 09:18 AM

PHP中的explode函数是一种用来将字符串分割成数组的函数,它非常常用且灵活。在使用explode函数的过程中,常常会遇到一些报错和问题,本文将介绍explode函数的基本用法并提供一些解决报错的方法。一、explode函数基本用法在PHP中,explode函数的基本语法如下:explode(string$separator,string$stri

PHP中使用explode函数时常见的错误及解决方案 PHP中使用explode函数时常见的错误及解决方案 Mar 11, 2024 am 08:33 AM

标题:PHP中使用explode函数时常见的错误及解决方案在PHP中,explode函数是用于将字符串分割成数组的常用函数。然而,由于使用不当或者数据格式不正确,可能会导致一些常见的错误。本文将针对在使用explode函数时可能遇到的问题进行分析,并提供解决方案和具体的代码示例。错误一:未传入分隔符参数在使用explode函数时,最常见的错误之一是未传入分隔

使用explode和implode函数分割和合并字符串 使用explode和implode函数分割和合并字符串 Jun 15, 2023 pm 08:42 PM

在PHP编程中,处理字符串是一个经常需要进行的操作。其中,分割和合并字符串则是两种常见的需求。为了更方便地进行这些操作,PHP提供了两个非常实用的函数,即explode和implode函数。本文将介绍这两个函数的用法,以及一些实用的技巧。一、explode函数explode函数用于将一个字符串按照指定的分隔符进行分割,并返回一个数组。其函数原型如下:arra

使用PHP函数 'explode' 将字符串拆分为数组 使用PHP函数 'explode' 将字符串拆分为数组 Jul 24, 2023 pm 11:09 PM

使用PHP函数"explode"将字符串拆分为数组在PHP开发中,经常会遇到需要将一个字符串按照指定的分隔符进行拆分的情况。这时,我们可以使用PHP内置函数"explode"来实现字符串到数组的转换。本文将介绍如何使用"explode"函数来拆分字符串,并给出相关的代码示例。"explode"函数的基本语法如下:arrayexplode(

使用PHP函数 'explode' 将字符串拆分为多个子字符串 使用PHP函数 'explode' 将字符串拆分为多个子字符串 Jul 25, 2023 pm 06:29 PM

使用PHP函数"explode"将字符串拆分为多个子字符串在PHP编程中,我们经常会遇到需要将一个字符串拆分为多个子字符串的情况。这时,PHP提供了一个非常方便的函数"explode",可以帮助我们轻松实现这个功能。"explode"函数的语法如下:arrayexplode(string$delimiter,string$string[,in

php explode报错怎么办 php explode报错怎么办 Jan 18, 2023 am 10:13 AM

php explode报错的解决办法:1、找到并打开出错的PHP代码;2、找到explode函数部分;3、修改代码为“dump(explode(',',$str));die;”,也就是用逗号分割为数组即可。

PHP中如何使用explode函数分割字符串 PHP中如何使用explode函数分割字符串 Jun 26, 2023 pm 12:03 PM

在PHP语言中,有很多基础函数可以帮我们快速有效地处理字符串。其中,explode函数是一个很实用的字符串分割函数。它可以将一个字符串按照指定的分割符分割成数组,进而进行更为灵活的字符串操作。在本文中,我们将会介绍PHP中如何使用explode函数来分割字符串。一、explode函数格式explode函数在PHP语言中的格式如下:explode(separa

explode()函数在PHP中是什么? explode()函数在PHP中是什么? Sep 04, 2023 pm 01:01 PM

在本文中,了解如何使用PHPExplode()函数,该函数是预定义的内置PHP函数。explode函数用于“将字符串拆分为PHP中的explode函数使我们能够通过break将一个字符串分解成更小的内容。这种分隔符称为分隔符。语法explode(分隔符,字符串,元素数)参数爆炸函数接受三个参数,其中两个是强制的,一个是可选的。让我们讨论这三个参数。分隔符这个字符指定临界点或点字符串将在此处分割,即每当在字符串中找到该字符时,它就象征着数组中一个元素的结束和另一个元素的开始。String输入字符串

See all articles