PHP中获取内存使用情况程序代码

cPHP内置函数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()/1024/1024, 2).'MB';
    return $memory;
}

常用的调试检测PHP代码性能的方法有:
memory_get_usage可以分析内存占用空间。
用microtime函数就可以分析程序执行时间。

时间: 2024-09-29 10:26:53

PHP中获取内存使用情况程序代码的相关文章

php中获取随机数组列表程序代码

贴一段代码,在php中获取随机数组 不用多说,直接贴代码,php中的array_rand很变态,突破了正常人的理解,繁琐 例1  代码如下 复制代码 function create_random_ids( $min,$max,$limited ) {     $_base_ids = range($min,$max);     $_temp_key = array_rand ($_base_ids,min(count($_base_ids),$limited+10));     //拼接    

PHP中获取文件扩展名程序代码

方法一,我自己最的一种获取扩展名方法  代码如下 复制代码 function extend_2($file_name) { $extend = pathinfo($file_name); $extend = strtolower($extend["extension"]); return $extend; } 方法二,利用explode函数与end函数组合操作  代码如下 复制代码 function get_extension($file) { return end(explode('

PHP中获取URL完整路径程序代码

举例 URL : http://www.111cn.net/Test/Test.php  代码如下 复制代码 $_SERVER['SERVER_NAME']:  www.111cn.net $_SERVER['SERVER_PORT'] : 80 $_SERVER['REQUEST_URI'] : /Test/Test.php 那我们把上面几句结合起来就可以实现了 URL完整路径为:  代码如下 复制代码 "http://".$_SERVER['SERVER_NAME'].$_SERV

php中获取中文首字母程序代码

 代码如下 复制代码 例 <?php $limit = array( //gb2312 拼音排序     array(45217,45252), //A     array(45253,45760), //B     array(45761,46317), //C     array(46318,46825), //D     array(46826,47009), //E     array(47010,47296), //F     array(47297,47613), //G     a

cocoa touch-在ios中获取UIKeyboard显示情况

问题描述 在ios中获取UIKeyboard显示情况 怎么判断应用中UIKeyboard是否开启了? 我不想用UITextField的delegates方法实现. 谢谢. 解决方案 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];[[NSNotificationCe

smarty获取url参数传值程序代码

smarty获取url参数传值程序代码 <head> <meta http-equiv="content-type" content="text/html; charset=gb2312" /> <title>smarty获取url参数传值程序代码</title> </head> <body> <!--{$smarty.get.url}--> </body> </h

WordPress获取文章内容摘要程序代码

这个是我自己写的获取文章内容摘要程序  代码如下 复制代码 <?php  global $more;    $more = 1;    //1=全文 0=摘要   $my_content = strip_tags(get_the_excerpt(), $post->post_content); //获得文章   $my_content = str_replace(array("rn", "r", "n", " ",

浅谈Java编程中的内存泄露情况_java

必须先要了解的 1.c/c++是程序员自己管理内存,Java内存是由GC自动回收的. 我虽然不是很熟悉C++,不过这个应该没有犯常识性错误吧. 2.什么是内存泄露? 内存泄露是指系统中存在无法回收的内存,有时候会造成内存不足或系统崩溃. 在C/C++中分配了内存不释放的情况就是内存泄露. 3.Java存在内存泄露 我们必须先承认这个,才可以接着讨论.虽然Java存在内存泄露,但是基本上不用很关心它,特别是那些对代码本身就不讲究的就更不要去关心这个了. Java中的内存泄露当然是指:存在无用但是垃

free:一个在Linux中检查内存使用情况的标准命令

我们都知道, IT 基础设施方面的大多数服务器(包括世界顶级的超级计算机)都运行在 Linux 平台上,因为和其他操作系统相比, Linux 更加灵活.有的操作系统对于一些微乎其微的改动和补丁更新都需要重启,但是 Linux 不需要,只有对于一些关键补丁的更新, Linux 才会需要重启. Linux 系统管理员面临的一大挑战是如何在没有任何停机时间的情况下维护系统的良好运行.管理内存使用是 Linux 管理员又一个具有挑战性的任务.free 是 Linux 中一个标准的并且被广泛使用的命令,它