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代码占用内存的全部内容了,本函数十分的高效,有需要的小伙伴可以参考下

时间: 2024-08-07 21:19:11

PHP通过内置函数memory_get_usage()获取内存使用情况的相关文章

thinkphp对数据库操作有哪些内置函数

原文:thinkphp对数据库操作有哪些内置函数 getModelName() 获取当前Model的名称 getTableName() 获取当前Model的数据表名称 switchModel(type,vars=array()) 动态切换模型 table() 设置当前操作的数据表 field() 设置要查询的数据字段 where() 设置查询或者操作条件 data(data) 设置数据对象 order(order) 设置排序 limit(limit) 查询限制 page(page) 查询分页 j

lambda 表达式+python内置函数

#函数 def f1(a,b): retrun  a+b #lambda方式,形参(a,b):返回值(a+b) f2=lambda a,b : a+b 在一些比较简单的过程计算就可以用lambda python内置函数 abc 获取绝对值 all 循环对象,都为真就返回真否则为假 >>> li[1, 2, 3]>>> all(li)True #0为假 >>> li=[0,1,2,3]>>> all(li)False bool 真假判断

PHP内置函数大全

1 php内置函数大全 2 第2章 Apache函数 15 3 2.1 Apache信息获取类函数 15 4 2.1.1 apache_child_terminate函数:在本次请求结束后终止Apache进程 15 5 2.1.2 apache_get_modules函数:获取Apache的模块列表 16 6 2.1.3 apache_get_version函数:获取Apache的版本 16 7 2.1.4 apache_getenv函数:获取Apache的环境变量 17 8 2.1.5 apa

python函数(6):内置函数和匿名函数

我们学了这么多关于函数的知识基本都是自己定义自己使用,那么我们之前用的一些函数并不是我们自己定义的比如说print(),len(),type()等等,它们是哪来的呢? 一.内置函数 由python内部定义好我们可以直接调用的函数就叫内部函数.python一共给我们68个内置函数: abs() dict() help() min() setattr() all() dir() hex() next() slice() any() divmod() id() object() sorted() as

Python 函数对象 命名空间与作用域 闭包函数 装饰器 迭代器 内置函数

一.函数对象 函数(Function)作为程序语言中不可或缺的一部分,但函数作为第一类对象(First-Class Object)却是 Python 函数的一大特性. 那到底什么是第一类对象(First-Class Object)呢? 在 Python 中万物皆为对象,函数也不例外,函数作为对象可以赋值给一个变量.可以作为元素添加到集合对象中.可作为参数值传递给其它函数,还可以当做函数的返回值,这些特性就是第一类对象所特有的. 1.函数身为一个对象,拥有对象模型的三个通用属性:id.类型.和值.

day3-函数,递归,内置函数

day3-函数,递归,内置函数 作者:矮哥 归档:学习笔记 2017/01/28 1.函数是什么? 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,具体区别,我们后面会讲,编程中的函数在英文中也有很多不同的叫法.在BASIC中叫做subroutine(子过程或子程序),在Pascal中叫做procedure(过程)和function,在C中只有function,在Java里面叫做method. 定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个

04_内置函数(二)

内置函数(二) 1.1 callable() 功能:函数是否可调用 示例1: def f1(): pass f1() f2 = 123 f2() # 输出结果 TypeError: 'int' object is not callable 示例2: def f1(): pass # f1() f2 = 123 # f2() print(callable(f1)) print(callable(f2)) # 输出结果 True False 1.2 chr() 功能:数字转字母,返回对应的ASCII

文成小盆友python-num3 集合,函数,-- 部分内置函数

本接主要内容: set -- 集合数据类型 函数 自定义函数 部分内置函数 一.set 集合数据类型 set集合,是一个无序且不重复的元素集合 集合基本特性 无序 不重复 创建集合 #!/bin/env python s1 = {"1","2","3","4"} ##或者 s2 = set() set 提供的功能 1 class set(object): 2 """ 3 set() -> n

Python内置函数详解

置顶   内置函数详解 https://docs.python.org/3/library/functions.html?highlight=built#ascii 此文参考了别人整理好的东西(地址:http://www.cnblogs.com/sesshoumaru/p/6140987.html#p1),然后结合自己的理解,写下来,一方面方便自己,让自己好好学习,顺便回忆回忆:另一方面,让喜欢的盆友也参考一下. 经查询,3.6版本总共有68个内置函数,主要分类如下: 数学运算(7个) 类型转换