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 相关文章推荐
使用adodb lite解决问题
Dec 31 PHP
php file_exists 检查文件或目录是否存在的函数
May 10 PHP
PHP性能优化工具篇Benchmark类调试执行时间
Dec 06 PHP
使用Sphinx对索引进行搜索
Jun 25 PHP
PHP加密函数 Javascript/Js 解密函数
Sep 23 PHP
PHP中文竖排转换实现方法
Oct 23 PHP
9个比较实用的php代码片段
Mar 15 PHP
PHP 将数组打乱 shuffle函数的用法及简单实例
Jun 17 PHP
Yii2 加载css、js 载静态资源的方法
Mar 10 PHP
php提取微信账单的有效信息
Oct 01 PHP
YII框架页面缓存操作示例
Apr 29 PHP
PHP实现考试倒计时功能代码
Apr 16 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中使用灵巧的体系结构
2006/10/09 PHP
PHP中Session可能会引起并发问题
2015/06/26 PHP
thinkPHP自动验证、自动添加及表单错误问题分析
2016/10/17 PHP
php mysql实现mysql_select_db选择数据库
2016/12/30 PHP
PHP实现获取毫秒时间戳的方法【使用microtime()函数】
2019/03/01 PHP
Extjs优化(一)删除冗余代码提高运行速度
2013/04/15 Javascript
AngularJS基础知识笔记之表格
2015/05/10 Javascript
jQuery插件FusionCharts实现的2D柱状图效果示例【附demo源码下载】
2017/03/06 Javascript
jQuery弹出窗口简单实现代码
2017/03/09 Javascript
JS简单获取当前日期时间的方法(如:2017-03-29 11:41:10 星期四)
2017/03/29 Javascript
微信小程序 聊天室简单实现
2017/04/19 Javascript
vue2.0使用v-for循环制作多级嵌套菜单栏
2018/06/25 Javascript
使用express来代理服务的方法
2019/06/21 Javascript
JS回调函数深入理解
2019/10/16 Javascript
[05:26]TI10典藏宝瓶套装外观展示
2020/07/03 DOTA
[05:23]DOTA2-DPC中国联赛2月1日Recap集锦
2021/03/11 DOTA
python删除列表内容
2015/08/04 Python
python与php实现分割文件代码
2017/03/06 Python
Python中交换两个元素的实现方法
2018/06/29 Python
对python生成业务报表的实例详解
2019/02/03 Python
Python3.5常见内置方法参数用法实例详解
2019/04/29 Python
Python OrderedDict的使用案例解析
2019/10/25 Python
pyenv虚拟环境管理python多版本和软件库的方法
2019/12/26 Python
python实现FTP循环上传文件
2020/03/20 Python
在服务器上安装python3.8.2环境的教程详解
2020/04/26 Python
在 Python 中使用 7zip 备份文件的操作
2020/12/11 Python
CSS实现的一闪而过的图片闪光效果
2014/04/23 HTML / CSS
浅析CSS3 用text-overflow解决文字排版问题
2020/10/28 HTML / CSS
使用jTopo给Html5 Canva中绘制的元素添加鼠标事件
2014/05/15 HTML / CSS
HTML5 Canvas之测试浏览器是否支持Canvas的方法
2015/01/01 HTML / CSS
美国体育用品在线:Modell’s Sporting Goods
2018/06/07 全球购物
电气工程和自动化自荐信范文
2013/12/25 职场文书
十佳教师事迹材料
2014/01/11 职场文书
学校介绍信范文
2014/01/14 职场文书
关于国庆节的演讲稿
2014/09/05 职场文书
通知格式
2015/04/27 职场文书