如何获知PHP程序占用虚拟内存多少内存memory

PHP获得内存使用状态memory_get_usage()函数
在php中为你提供memory_get_usage函数,可以检查到你服务器当前所使用的内存情况,有了这个函数我们可以实时的检查服务器状态了,下面我来介绍memory_get_usage用法,格式化memory_get_usage()输出
在php中为你提供memory_get_usage函数,可以检查到你服务器当前所使用的内存情况,有了这个函数我们可以实时的检查服务器状态了,下面我来介绍memory_get_usage用法,格式化memory_get_usage()输出,代码如下:
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&
PHP memory_get_usage() 函数还可以有个参数,$real_usage,其值为布尔值,默认为 FALSE,表示得到的内存使用量不包括该函数(PHP 内存管理器)占用的内存;当设置为 TRUE 时,得到的内存为不包括该函数(PHP 内存管理器)占用的内存。
例代码如下:
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;&
& & & & &}&
(责任编辑:最模板)
------分隔线----------------------------
php用来测定一个给定的对象是否来自指定的对象类,代码如下: ...
微信浏览器的HTTP_USER_AGENT 在iPhone下,返回 Mozilla/5.0 (iP CPU ...
需求如下,现有一个1G左右的日志文件,大约有500多万行,用php返回...
引用文件指的是include、require_once引用其它文件引起的空白行,这...
PHP框架中的各个目录下面的各个.php文件是如何实现加载的,他上...
CopyRight (C)
最模板 , 深圳奇好科技有限公司 All Rights Reserved.正文 memory_get_usage获取当前PHP内存消耗量的例子
memory_get_usage获取当前PHP内存消耗量的例子
发布时间: & 编辑:
本文介绍下,在php中,用函数memory_get_usage获取当前PHP内存消耗量的例子,有需要的朋友参考下。
echo memory_get_usage();
$var = str_repeat(&&, 10000);
echo memory_get_usage();
unset($var);
echo memory_get_usage();
输出: 62416
说明:memory_get_usage()函数输出的数值为bytes单位
2,格式化memory_get_usage()输出
复制代码 代码示例:
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,自定义函数获取数组或变量值大小
复制代码 代码示例:
function array_size($arr) {
ob_start();
print_r($arr);
$mem = ob_get_contents();
ob_end_clean();
$mem = preg_replace(&/\n +/&, &&, $mem);
$mem = strlen($mem);
$memEstimate = array_size($GLOBALS);
要减少内存的占用,可以使用 PHP unset() 函数把不再需要使用的变量删除。
类似函数:PHP mysql_free_result() 函数,可以清空不再需要的查询数据库得到的结果集,这样也能得到更多可用内存。
PHP memory_get_usage()还可以有个参数,$real_usage,其值为布尔值。默认为 FALSE,表示得到的内存使用量不包括该函数(PHP 内存管理器)占用的内存;
当设置为 TRUE 时,得到的内存为包括该函数(PHP 内存管理器)占用的内存。
在php编程中,可以使用PHP memory_get_usage()比较各个方法占用内存的高低,然后选择性能较好的方法。您可能感兴趣的文章:PHP通过内置函数memory_get_usage()获取内存使用情况
投稿:hebedich
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了PHP通过内置函数memory_get_usage()获取内存使用情况,需要的朋友可以参考下
PHP内置函数memory_get_usage()能返回当前分配给PHP脚本的内存量,单位是字节(byte)。在WEB实际开发中,这些函数非常有用,我们可以使用它来调试PHP代码性能。
memory_get_usage()函数返回内存使用量,memory_get_peak_usage()函数返回内存使用峰值,getrusage()返回CUP使用情况。但有一点请注意,在这些函数需要在Linux上运行。
下面我们来看一个实例:
echo '开始内存:'.memory_get_usage(), '';
$tmp = str_repeat('hello', 1000);&&
echo '运行后内存:'.memory_get_usage(), '';&
unset($tmp);&&
echo '回到正常内存:'.memory_get_usage();
输出结果:
开始内存:147296
运行后内存:152456
回到正常内存:147296
例子中,我们使用str_repeat()将字符串“hello”重复了1000遍,最终来对比前后消耗的内存大小。由上面的例子可以看出,要想减少内存的占用,可以使用unset() 函数把不再需要使用的变量删除。类似还有mysql_free_result() 函数,当我们不再需要查询数据得到的结果集时,可以使用释放查询占用的内存。
函数memory_get_usage()还可以有个参数,$real_usage,其值为布尔值。如果设置为 TRUE,获取系统分配的真实内存尺寸。如果未设置或者设置为 FALSE,将是 emalloc() 报告使用的内存量。
在实际WEB开发中,可以用PHP memory_get_usage()比较各个方法占用内存的高低,来选择使用哪种占用内存小的方法。
函数memory_get_usage()返回的字节数(单位为 byte(s))。下面这个自定义函数将字节数转换成MB更容易阅读:
function memory_usage() {
&&& $memory&&&& = ( ! function_exists('memory_get_usage')) ? '0' : round(memory_get_usage()/, 2).'MB';
&&& return $
常用的调试检测PHP代码性能的方法有:
memory_get_usage可以分析内存占用空间。
用microtime函数就可以分析程序执行时间。
以上就是使用memory_get_usage获取php代码占用内存的全部内容了,本函数十分的高效,有需要的小伙伴可以参考下
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具如何获知PHP程序占用多少内存(memory_get_usage)
字体:[ ] 类型:转载 时间:
想要知道编写的 PHP 脚本需要占用多少内存么?很简单,直接使用 PHP 查看当前分配给 PHP 脚本的内存的函数 memory_get_usage() 就可以了
下面是使用示例:
代码如下: &?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 ?&
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具

我要回帖

更多关于 python 程序占用内存 的文章

 

随机推荐