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 相关文章推荐
附件名前加网站名
Mar 23 PHP
php 文章采集正则代码
Dec 28 PHP
利用Memcached在php下实现session机制 替换PHP的原生session支持
Aug 21 PHP
PHP全概率运算函数(优化版) Webgame开发必备
Jul 04 PHP
PHP用strstr()函数阻止垃圾评论(通过判断a标记)
Sep 28 PHP
php递归获取目录内文件(包含子目录)封装类分享
Dec 25 PHP
thinkphp配置连接数据库技巧
Dec 02 PHP
PHP curl 或 file_get_contents 获取需要授权页面的方法
May 05 PHP
visual studio code 调试php方法(图文详解)
Sep 15 PHP
php模式设计之观察者模式应用实例分析
Sep 25 PHP
PHP的JSON封装、转变及输出操作示例
Sep 27 PHP
PHP-FPM 设置多pool及配置文件重写操作示例
Oct 02 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
使用PHP下载CSS文件中的图片的代码
2013/09/24 PHP
php简单实现短网址(短链)还原的方法(测试可用)
2016/05/09 PHP
php多线程并发实现方法
2016/09/30 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
PHP守护进程化在C和PHP环境下的实现
2017/11/21 PHP
PHP 实现重载
2021/03/09 PHP
js Form.elements[i]的使用实例
2011/11/13 Javascript
jQuery中[attribute!=value]选择器用法实例
2014/12/31 Javascript
JavaScript对象学习小结
2015/09/02 Javascript
详细解读Jquery各Ajax函数($.get(),$.post(),$.ajax(),$.getJSON())
2016/08/15 Javascript
JS文件/图片从电脑里面拖拽到浏览器上传文件/图片
2017/03/08 Javascript
JS计算两个时间相差分钟数的方法示例
2018/01/10 Javascript
jQuery实现鼠标移入移出事件切换功能示例
2018/09/06 jQuery
分享一个vue项目“脚手架”项目的实现步骤
2019/05/26 Javascript
JavaScript面向对象程序设计中对象的定义和继承详解
2019/07/29 Javascript
js重写alert事件(避免alert弹框标题出现网址)
2020/12/04 Javascript
Python按行读取文件的实现方法【小文件和大文件读取】
2016/09/19 Python
django celery redis使用具体实践
2019/04/08 Python
python Kmeans算法原理深入解析
2019/08/23 Python
浅谈pycharm使用及设置方法
2019/09/09 Python
调用其他python脚本文件里面的类和方法过程解析
2019/11/15 Python
python3 assert 断言的使用详解 (区别于python2)
2019/11/27 Python
如何基于Python爬虫爬取美团酒店信息
2020/11/03 Python
Python类型转换的魔术方法详解
2020/12/23 Python
实例讲解CSS3中的border-radius属性
2015/08/18 HTML / CSS
瑞典最好的运动鞋专卖店:Sneakersnstuff
2016/08/29 全球购物
linux面试题参考答案(6)
2016/06/23 面试题
EJB需直接实现它的业务接口或Home接口吗,请简述理由
2016/11/23 面试题
写好求职应聘自荐信的三部曲
2013/09/21 职场文书
中职生自我鉴定范文
2013/10/03 职场文书
小学教师管理制度
2014/01/18 职场文书
工作表现自我评价
2014/02/08 职场文书
大学生党员自我评价范文
2014/04/09 职场文书
面试必备的求职信
2014/05/25 职场文书
六一文艺汇演开幕词
2015/01/29 职场文书
Python 详解通过Scrapy框架实现爬取CSDN全站热榜标题热词流程
2021/11/11 Python