PHP通过内置函数memory

 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函数就可以分析程序执行时间。

时间: 2025-01-06 16:43:03

PHP通过内置函数memory的相关文章

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

PHP内置函数memory_get_usage()能返回当前分配给PHP脚本的内存量,单位是字节(byte).在WEB实际开发中,这些函数非常有用,我们可以使用它来调试PHP代码性能. memory_get_usage()函数返回内存使用量,memory_get_peak_usage()函数返回内存使用峰值,getrusage()返回CUP使用情况.但有一点请注意,在这些函数需要在Linux上运行. 下面我们来看一个实例: 复制代码 代码如下: echo '开始内存:'.memory_get_u

asp内置函数formatdatetime使用示例代码

asp内置函数formatdatetime使用示例代码 formatdatetime(now(),0) '则返回2004-10-18 11:45:53   formatdatetime(now(),1) '则返回2004年10月18日   formatdatetime(now(),2) '则返回2004-10-18   formatdatetime(now(),3) '则返回11:47:12   formatdatetime(now(),4) '则返回11:47   weekDayName(we

仿asp内置函数的js版的datediff函数

asp里有一个内置函数datediff函数,那么,如何在js里实现呢. 且看下面代码: function DateDiff(asStartDate,asEndDate){   var miStart=Date.parse(asStartDate.replace(/\-/g,'/'));   var miEnd=Date.parse(asEndDate.replace(/\-/g,'/'));   return (miEnd-miStart)/(1000*24*3600);   } 调用方式: d

Oracle SQL 内置函数的使用方法及结果

SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual; A A ZERO SPACE --------- --------- --------- --------- 65 97 48 32 2.CHR 给出整数,返回对应的字符; SQL> select chr(54740) zhao,chr(65) chr65 fr

SqlServer 常用内置函数及用法

  SqlServer 常用内置函数及用法 select cast('2012/02/03' as datetime); select convert(varchar(10),GETDATE(),120);--转换成日期类型 select CASE WHEN ID =1 THEN 'A0' ELSE 'TT' END from demo1;--case when select len('ssa爱迪生') --返回6 长度 select left('seaa',2) --se从左边起前两个字符 s

从两个例子看 Python【map、reduce、filter】内置函数的使用

一 概念介绍         本文从求质数,求阶乘两个示例, 提示Python的内置函数[map.reduce.filter]的使用方式         详细参见:https://docs.python.org/2/library/functions.html     Map函数: 对iterable中的item依次执行function(item),执行结果输出为list map(function, iterable[, iterable, ...]) -> list     Filter函数:

Hive基本操作,DDL操作(创建表,修改表,显示命令),DML操作(Load Insert Select),Hive Join,Hive Shell参数(内置运算符、内置函数)等

1.  Hive基本操作 1.1  DDL操作 1.1.1    创建表 建表语法 CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name    [(col_name data_type[COMMENT col_comment], ...)] +    [COMMENT table_comment]    [PARTITIONED BY (col_namedata_type [COMMENT col_comment], ...)]    [CLUST

smarty内置函数config_load用法实例_php实例

本文实例讲述了smarty内置函数config_load用法.分享给大家供大家参考.具体如下: {config_load}用于从配置文件中,加载到配置变量.详细用法如下: 配置文件:foo.conf 说明:[Table] 和 [Customer] 表示段落名称. 复制代码 代码如下: [Table] pageTitle = "this is mine" bodyBgColor = "#eee" tableBorderSize = 3 tableBgColor = &

smarty内置函数foreach用法实例_php实例

本文实例讲述了smarty内置函数foreach用法.分享给大家供大家参考.具体如下: 输出文件:index.php 复制代码 代码如下: <?php require_once('libs/Smarty.class.php'); $smarty = new Smarty(); $smarty->setTemplateDir($_SERVER['DOCUMENT_ROOT']."/php/templates/"); $smarty->setCompileDir($_SE