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 相关文章推荐
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-1 开始了解php
Jul 03 PHP
php入门学习知识点三 PHP上传
Jul 14 PHP
PHP高级对象构建 多个构造函数的使用
Feb 05 PHP
深入探讨<br />和 \r\n两者有什么区别??
Jun 05 PHP
php缩小png图片不损失透明色的解决方法
Dec 25 PHP
Laravel框架中扩展函数、扩展自定义类的方法
Sep 04 PHP
PHP错误Warning:mysql_query()解决方法
Oct 24 PHP
PHP操作MySQL的mysql_fetch_* 函数的常见用法教程
Dec 25 PHP
PHP实现批量清空删除指定文件夹所有内容的方法
May 30 PHP
PHP数组常用函数实例小结
Aug 20 PHP
PHP判断一个变量是否为整数、正整数的方法示例
Sep 11 PHP
laravel框架邮箱认证实现方法详解
Nov 22 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多例模式介绍
2013/06/24 PHP
PHP读取CURL模拟登录时生成Cookie文件的方法
2014/11/04 PHP
WordPress的主题编写中获取头部模板和底部模板
2015/12/28 PHP
PHP实现的AES加密、解密封装类与用法示例
2018/08/02 PHP
extjs form textfield的隐藏方法
2008/12/29 Javascript
JavaScript 输入框内容格式验证代码
2010/02/11 Javascript
关于flash遮盖div浮动层的解决方法
2010/07/17 Javascript
JavaScript中使用Substring删除字符串最后一个字符
2013/11/03 Javascript
JavaScript文本框脚本编写的注意事项
2016/01/25 Javascript
JavaScript实现时间倒计时跳转(推荐)
2016/06/28 Javascript
详解如何使用vue-cli脚手架搭建Vue.js项目
2017/05/19 Javascript
无限循环轮播图之运动框架(原生JS实现)
2017/10/01 Javascript
微信小程序仿RadioGroup改变样式的处理方案
2018/07/13 Javascript
Layui tree 下拉菜单树的实例代码
2019/09/21 Javascript
JavaScript接口实现方法实例分析
2020/05/16 Javascript
[01:32]寻找你心中的那团火 DOTA2 TI9火焰传递活动今日开启
2019/05/16 DOTA
Python 实现随机数详解及实例代码
2017/04/15 Python
python实现对excel进行数据剔除操作实例
2017/12/07 Python
使用Python控制摄像头拍照并发邮件
2019/04/23 Python
利用PyCharm Profile分析异步爬虫效率详解
2019/05/08 Python
Python使用OpenPyXL处理Excel表格
2020/07/02 Python
Vilebrequin美国官方网上商店:法国豪华泳装品牌
2020/02/22 全球购物
护士自荐信范文
2013/12/15 职场文书
拓展培训心得体会
2014/01/04 职场文书
简历上的自我评价怎么写
2014/01/28 职场文书
餐饮业员工工作决心书
2014/03/11 职场文书
全国优秀辅导员事迹材料
2014/05/14 职场文书
学生会竞选演讲稿学习部
2014/08/25 职场文书
酒店端午节活动方案
2014/08/26 职场文书
党员创先争优心得体会
2014/09/11 职场文书
五一劳动节慰问信
2015/02/14 职场文书
2015年出纳个人工作总结
2015/04/02 职场文书
第一节英语课开场白
2015/06/01 职场文书
幼儿园老师新年寄语
2015/08/17 职场文书
导游词之南京栖霞山
2019/10/18 职场文书
Python requests用法和django后台处理详解
2022/03/19 Python