php获取总共内存_PHP获取内存使用情况详解
本篇将详解php获取内存使用情况。
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更容易阅读:functionmemory_usage(){
$memory=(!function_exists('memory_get_usage'))'0':round(memory_get_usage()/1024/1024,2).'MB';
return$memory;
}
常用的调试检测PHP代码性能的方法有:
memory_get_usage可以分析内存占用空间。
用microtime函数就可以分析程序执行时间。
本篇详解了php获取内存使用情况,更多相关内容请关注php中文网。
相关推荐:
php获取总共内存_PHP获取内存使用情况详解相关推荐
- xpath 取标签下所有文字内容_对Xpath 获取子标签下所有文本的方法详解
对Xpath 获取子标签下所有文本的方法详解 在爬虫中遇见这种怎么办 想提取名称, 但是 名称不在一个标签里 使用xpath string()方法 例如 data.xpath("string ...
- python内存的回收机制_python的内存管理和垃圾回收机制详解
简单来说python的内存管理机制有三种 1)引用计数 2)垃圾回收 3)内存池 接下来我们来详细讲解这三种管理机制 1,引用计数: 引用计数是一种非常高效的内存管理手段,当一个pyhton对象被引用 ...
- 如何获取请求端真实IP和远程主机IP详解
如何获取请求端真实IP和远程主机IP详解 需求背景 一.Remote_Addr 情况 一: 情况二: java中获取Remote_Addr的api 二.X-Forwarded-For java中获取X ...
- php 自动获取头像,PHP_WordPress中用于获取及自定义头像图片的PHP脚本详解,get_avatar()(获取头像)
get_avat - phpStudy...
WordPress中用于获取及自定义头像图片的PHP脚本详解 get_avatar()(获取头像)get_avatar() 函数用来获取置顶邮箱或者用户的头像代码,在评论列表中非常常用. 这个函数提供 ...
- java 获取用户的MAC地址多种方法实例详解
java 获取用户的MAC地址多种方法实例详解 这篇文章主要介绍了JAVA实现获取用户的MAC地址的多种方法实例,需要的朋友可以参考下 java实现获取用户的MAC地址方法: 方法一:将本机地址与局域 ...
- linux内存管理机制以及free命令详解
linux内存管理机制以及free命令详解 一.linux内存管理机制 1.物理内存和虚拟内存 直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存 ...
- FreeRTOS 之五 动态内存管理(heap_1.c)详解
写在前面 写这篇文章时,网上已经有了铺天盖地的文章来介绍 FreeRTOS 的动态内存.之所以还去写这篇博文,主要还是记录自己的学习过程.结合源代码一步一步分析一下FreeRTOS究竟是怎么实现的 ...
- 03弱引用内存泄露和hash冲突-ThreadLocal详解-并发编程(Java)
文章目录 1 问题 2 内存泄露 3 弱引用 4 问题分析 4.1 key为强引用 4.2 key为弱引用 4.3 内存泄漏的真正原因 4.4 为什么Entry 的key使用弱引用 5 hash冲突的 ...
- Java JVM内存模型(运行时数据区域)详解
详细介绍了JVM运行时数据区域,包括方法区.堆空间.栈空间.本地方法栈.程序计数器.常量池.直接内存.字面量.符号引用.直接引用. Java程序在运行时,需要在内存中的分配空间.为了提高运算效率,ja ...
最新文章
- 存储方式与介质对性能的影响
- linux内核链表分析
- 指针的引用做函数的参数
- 2021牛客多校6 - Hopping Rabbit(矩形取模+扫描线)
- c# java 哪个好 流媒体_C#Net7mma H264 / PCMU流媒体
- Java8 Stream流式编程,极大解放你的生产力!
- windows ftp服务器_ftp是什么意思,在windows系统安装ftp只需3步
- 哪种不是python元组的定义方式_最新python 笔试题
- 数据大放送之各省30米DEM数据
- java混淆书籍介绍,第二代Java混淆器Allatori功能介绍教程资源
- iPhone5s的App Store不能下载应用的解决方案
- 闲聊可穿戴设备 - shawn.xie
- pythonunicode编码_python unicode 编码整理
- html中clear标签意义,html中的clear是什么意思
- C语言输出转置矩阵解题步骤,C语言实现矩阵转置
- 中国石油大学《催化原理》第三阶段在线作业
- Nginx 方向代理解决跨域问题-2
- JavaScript——JSON
- mysql-router设置,mysql router 中间件 配置
- 计量经济学——一元线性回归模型(例题)
热门文章
- 华为全球最快 AI 训练集群 Atlas 900 诞生!
- 如何让你的 Git 历史保持“干净”?!
- 漫画:趣解鸿蒙 OS 如何实现跨平台?
- 53 年 IT 老兵详谈传统网络到互联网的演变史
- 三步学会 Debug 神器,效率提升不少!
- C 主导、C++与 C# 为辅,揭秘 Windows 10 源代码!
- 为什么我 11 岁的儿子说要放弃编程,却又转战 Python
- oracle执行策略是什么意思,郁闷的问题:oracle pl/sql 和 pro c中的执行策略
- java公司自己封装的框架_SpringBoot封装自己的Starter的实现方法
- mysql from_unixtime(_MySQL 数据库中日期与时间函数 FROM_UNIXTIME(), UNIX_TIME()