PHP通过内置函数memory_get_usage()获取内存使用情况

 更新时间:2014年11月20日 16:05:57   投稿: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()/1024/1024, 2).'MB';
    return $memory;
}

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

以上就是使用memory_get_usage获取php代码占用内存的全部内容了,本函数十分的高效,有需要的小伙伴可以参考下

相关文章

  • 学习php设计模式 php实现桥梁模式(bridge)

    学习php设计模式 php实现桥梁模式(bridge)

    这篇文章主要介绍了php设计模式中的桥梁模式,使用php实现桥梁模式,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • PHP与Web页面的交互示例详解二

    PHP与Web页面的交互示例详解二

    这篇文章主要介绍了PHP与Web页面的交互示例详解二,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验

    web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验

    通过上一篇,获取用户Ip地址通用方法常见安全隐患(HTTP_X_FORWARDED_FOR) ,我们已经意 识到直接从http_x_forwarded_for中读取用户IP,跟我们直接从一个get,post值中读取其实没有两样。web参数检测里面一个基本原则:“一切输入都是有害的”,因此,只要是输入我们就需要进行过滤
    2013-06-06
  • PHP中使用循环实现的金字塔图形

    PHP中使用循环实现的金字塔图形

    这篇文章主要介绍了PHP中使用循环实现的金字塔图形,本文是一篇PHP的课堂笔记,完成老师的作业总结而来,需要的朋友可以参考下
    2014-11-11
  • 深入理解PHP中的Streams工具

    深入理解PHP中的Streams工具

    这篇文章主要介绍了PHP中的Streams工具,主要用来处理PHP中的包装类,需要的朋友可以参考下
    2015-07-07
  • PHP 500报错的快速解决方法

    PHP 500报错的快速解决方法

    下面小编就为大家带来一篇PHP 500报错的快速解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • php文件缓存类汇总

    php文件缓存类汇总

    这篇文章主要介绍了php文件缓存类,实例汇总了常见的文件缓存类及其用法,非常具有实用价值,需要的朋友可以参考下
    2014-11-11
  • thinkphp5.0自定义验证规则使用方法

    thinkphp5.0自定义验证规则使用方法

    本文主要讲了thinkphp5.0版本中自定义验证规则的使用方法和一些注意事项。
    2017-11-11
  • php获取文章内容第一张图片的方法示例

    php获取文章内容第一张图片的方法示例

    这篇文章主要介绍了php获取文章内容第一张图片的方法,涉及php针对图片的正则匹配操作技巧,需要的朋友可以参考下
    2017-07-07
  • php获取QQ头像并显示的方法

    php获取QQ头像并显示的方法

    这篇文章主要介绍了php获取QQ头像并显示的方法,提供了两种方法供大家选择,是非常实用的技巧,需要的朋友可以参考下
    2014-12-12

最新评论