php查看一个变量的占用内存的实例代码


Posted in PHP onMarch 29, 2020

事例:

php版本为7.2

<?php
echo memory_get_usage() , '<br>';
$start = memory_get_usage();
$a = Array();
for ($i=0; $i<1000; $i++) {
$a[$i] = $i + $i;
}
$mid = memory_get_usage();
echo memory_get_usage() , '<br>';
for ($i=1000; $i<2000; $i++) {
$a[$i] = $i + $i;
}
$end = memory_get_usage();
echo memory_get_usage() , '<br>';
echo 'argv:', ($mid - $start)/1000 ,'bytes' , '<br>';
echo 'argv:',($end - $mid)/1000 ,'bytes' , '<br>';
echo 'Memory:', ($mid - $start)/1024 ,'k' , '<br>';
echo 'Memory:',($end - $mid)/1024 ,'k' , '<br>';
输出是:
389336
418056
442632
argv:28.72bytes
argv:24.576bytes
Memory:28.046875k
Memory:24k

返回当前分配给你的 PHP 脚本的内存量,单位是字节(byte)。

大概了解1000个元素的整数数组需要占用 28k 内存,平均每个元素占用 28 个字节

memory_get_usage() 返回的结果并不是全是被数组占用了,还要包括一些 PHP

运行本身分配的一些结构,可能用内置函数生成的数组更接近真实的空间:

<?php
$start = memory_get_usage();
$a = array_fill(0, 10000, 1);
$mid = memory_get_usage(); //10k elements array;
echo 'argv:', ($mid - $start )/10000,'byte' , '<br>';
echo 'Memory:', ($mid - $start)/1024 ,'k' , '<br>';
$b = array_fill(0, 10000, 1);
$end = memory_get_usage(); //10k elements array;
echo 'argv:', ($end - $mid)/10000 ,'byte' , '<br>';
echo 'Memory:',($end - $mid)/1024 ,'k' , '<br>';
得到:
argv:54.5792byte
argv:54.5784byte

argv:39.736byte
Memory:388.046875k
argv:39.736byte
Memory:388.046875k

大概了解10000个元素的整数数组需要占用 388k 内存 ,从这个结果来看似乎一个数组元素大约占用了39个字节左右。

内容补充

php获取变量所占内存大小的方法

$start_memory = memory_get_usage();
$foo = "Some variable";
echo memory_get_usage() - $start_memory;

这个可以获取所有变量类型的大小

strlen($foo) 这个可以获取当前字符串的字节大小 除以8就是位大小

到此这篇关于php查看一个变量的占用内存的实例代码的文章就介绍到这了,更多相关php怎么查看一个变量的占用内存内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PHP 相关文章推荐
为查询结果建立向后/向前按钮
Oct 09 PHP
php中的MVC模式运用技巧
May 03 PHP
PHP新手NOTICE错误常见解决方法
Dec 07 PHP
基于php设计模式中单例模式的应用分析
May 15 PHP
json的键名为数字时的调用方式(示例代码)
Nov 15 PHP
ThinkPHP模板判断输出Present标签用法详解
Jun 30 PHP
Symfony实现行为和模板中取得request参数的方法
Mar 17 PHP
Thinkphp框架开发移动端接口(1)
Aug 18 PHP
PHP实现判断数组是一维、二维或几维的方法
Feb 06 PHP
PHP hebrev()函数用法讲解
Feb 21 PHP
PHP针对redis常用操作实例详解
Aug 17 PHP
php实现通过stomp协议连接ActiveMQ操作示例
Feb 23 PHP
tp5框架前台无限极导航菜单类实现方法分析
Mar 29 #PHP
PHP中类与对象功能、用法实例解读
Mar 27 #PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
Mar 27 #PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
Mar 27 #PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
Mar 26 #PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
Mar 26 #PHP
Centos7安装swoole扩展操作示例
Mar 26 #PHP
You might like
总集篇&特番节目先行播出!《SAO Alicization War of Underworld》第2季度TV动画4月25日放送!
2020/03/06 日漫
php-app开发接口加密详解
2018/04/18 PHP
jquery实现文本框鼠标右击无效以及不能输入的代码
2010/11/05 Javascript
原生javascript获取元素样式属性值的方法
2010/12/25 Javascript
基于JQuery 的消息提示框效果代码
2011/07/31 Javascript
js判断输入是否为数字的具体实例
2013/08/03 Javascript
jQuery对指定元素中指定字符串进行替换的方法
2015/03/17 Javascript
js如何改变文章的字体大小
2016/01/08 Javascript
JavaScript基于自定义函数判断变量类型的实现方法
2016/11/23 Javascript
详解Vue2.X的路由管理记录之 钩子函数(切割流水线)
2017/05/02 Javascript
jquery.uploadifive插件怎么解决上传限制图片或文件大小问题
2017/05/08 jQuery
详解javascript常用工具类的封装
2018/01/30 Javascript
微信小程序 动态修改页面数据及参数传递过程详解
2019/09/27 Javascript
解决Vue的项目使用Element ui 走马灯无法实现的问题
2020/08/03 Javascript
vue实现点击出现操作弹出框的示例
2020/11/05 Javascript
Python中eval带来的潜在风险代码分析
2017/12/11 Python
PyQt5打开文件对话框QFileDialog实例代码
2018/02/07 Python
Python判断中文字符串是否相等的实例
2018/07/06 Python
简单了解django缓存方式及配置
2019/07/19 Python
Flask框架学习笔记之消息提示与异常处理操作详解
2019/08/15 Python
python库matplotlib绘制坐标图
2019/10/18 Python
python实现实时视频流播放代码实例
2020/01/11 Python
python3实现网页版raspberry pi(树莓派)小车控制
2020/02/12 Python
Python 的 __str__ 和 __repr__ 方法对比
2020/09/02 Python
删除pycharm鼠标右键快捷键打开项目的操作
2021/01/16 Python
美体小铺印度官网:The Body Shop印度
2019/10/17 全球购物
手工制作的意大利皮革运动鞋:KOIO
2020/01/05 全球购物
日本化妆品植村秀俄罗斯官方网站:Shu Uemura俄罗斯
2020/02/01 全球购物
htmlentities() 和 htmlspecialchars()有什么区别
2015/07/01 面试题
数据库专业英语
2012/11/30 面试题
《寓言两则》教学反思
2014/02/27 职场文书
学校节能宣传周活动总结
2014/07/09 职场文书
计划生育证明书写要求
2014/09/17 职场文书
商场营业员岗位职责
2015/04/14 职场文书
多人股份制合作协议书
2016/03/19 职场文书
Windows Server 2022 超融合部署(图文教程)
2022/06/25 Servers