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


Posted in PHP onNovember 20, 2014

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 相关文章推荐
封装一个PDO数据库操作类代码
Sep 09 PHP
微盾PHP脚本加密专家php解密算法
Sep 13 PHP
php制作中间带自己定义图片二维码的方法
Jan 27 PHP
thinkphp3.2.2前后台公用类架构问题分析
Nov 25 PHP
ECSHOP在PHP5.5及高版本上报错的解决方法
Aug 31 PHP
Linux系统下使用XHProf和XHGui分析PHP运行性能
Dec 08 PHP
PHP简单判断字符串是否包含另一个字符串的方法
Mar 25 PHP
学习PHP session的传递方式
Jun 15 PHP
php curl常用的5个经典例子
Jan 20 PHP
PHP更安全的密码加密机制Bcrypt详解
Jun 18 PHP
PHP使用微信开发模式实现搜索已发送图文及匹配关键字回复的方法
Sep 13 PHP
PHP cookie与session会话基本用法实例分析
Nov 18 PHP
IIS下PHP的三种配置方式对比
Nov 20 #PHP
PHP程序员常见的40个陋习,你中了几个?
Nov 20 #PHP
php目录遍历函数opendir用法实例
Nov 20 #PHP
php中base_convert()进制数字转换函数实例
Nov 20 #PHP
PHP PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别
Nov 20 #PHP
PDO预处理语句PDOStatement对象使用总结
Nov 20 #PHP
php中ob_get_length缓冲与获取缓冲长度实例
Nov 20 #PHP
You might like
PHP封装的MSSql操作类完整实例
2016/05/26 PHP
PHP实现小偷程序实例
2016/10/31 PHP
PHP session垃圾回收机制实例分析
2019/06/28 PHP
广告切换效果(缓动切换)
2009/05/27 Javascript
jQuery 版元素拖拽原型代码
2011/04/25 Javascript
输入自动提示搜索提示功能的使用说明:sugggestion.txt
2013/09/02 Javascript
jquery按回车提交数据的代码示例
2013/11/05 Javascript
javascript如何动态加载表格与动态添加表格行
2013/11/27 Javascript
jQuery类选择器用法实例
2014/12/23 Javascript
详解JavaScript中的blink()方法的使用
2015/06/08 Javascript
JavaScript中数组的22种方法必学(推荐)
2016/07/20 Javascript
jQuery事件绑定方法学习总结(推荐)
2016/11/21 Javascript
Javascript 实现放大镜效果实例详解
2016/12/03 Javascript
JS实现一次性弹窗的方法【刷新后不弹出】
2016/12/26 Javascript
详解axios在node.js中的post使用
2017/04/27 Javascript
jQuery实现的简单动态添加、删除表格功能示例
2017/09/21 jQuery
Vue的路由及路由钩子函数的实现
2019/07/02 Javascript
JavaScript中的this基本问题实例小结
2020/03/09 Javascript
javascript贪吃蛇游戏设计与实现
2020/09/17 Javascript
Python编程之序列操作实例详解
2017/07/22 Python
Python实现嵌套列表去重方法示例
2017/12/28 Python
Python类的继承用法示例
2019/01/31 Python
python opencv捕获摄像头并显示内容的实现
2019/07/11 Python
python中栈的原理及实现方法示例
2019/11/27 Python
python设置代理和添加镜像源的方法
2020/02/14 Python
解决Keyerror ''acc'' KeyError: ''val_acc''问题
2020/06/18 Python
Python pip install之SSL异常处理操作
2020/09/03 Python
彪马土耳其官网:PUMA土耳其
2019/07/14 全球购物
校园报刊亭创业计划书
2014/01/02 职场文书
同事打架检讨书
2014/02/04 职场文书
高中同学会活动方案
2014/08/14 职场文书
中级会计大学生职业生涯规划书
2014/09/16 职场文书
教师党员自我剖析材料
2014/09/29 职场文书
旷课检讨书500字
2014/10/14 职场文书
高校教师个人工作总结2014
2014/12/17 职场文书
《多彩的民间艺术》教学反思
2016/02/16 职场文书