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+MySql编写聊天室
Oct 09 PHP
php 代码优化之经典示例
Mar 24 PHP
使用php+apc实现上传进度条且在IE7下不显示的问题解决方法
Apr 25 PHP
PHP使用DES进行加密与解密的方法详解
Jun 06 PHP
destoon安全设置中需要设置可写权限的目录及文件
Jun 21 PHP
yii,CI,yaf框架+smarty模板使用方法
Dec 29 PHP
Smarty实现页面静态化(生成HTML)的方法
May 23 PHP
php进行ip地址掩码运算处理的方法
Jul 11 PHP
3种方法轻松处理php开发中emoji表情的问题
Jul 18 PHP
php图片添加水印例子
Jul 20 PHP
Paypal实现循环扣款(订阅)功能
Mar 23 PHP
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
May 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数字转汉字代码(算法)
2011/10/08 PHP
thinkPHP5.0框架简单配置作用域的方法
2017/03/17 PHP
php获取文章内容第一张图片的方法示例
2017/07/03 PHP
锋利的jQuery jQuery中的DOM操作
2010/03/21 Javascript
jquery 学习之二 属性相关
2010/11/23 Javascript
javascript实时显示北京时间的方法
2015/03/12 Javascript
javascript相关事件的几个概念
2015/05/21 Javascript
js去除浏览器默认底图的方法
2015/06/08 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
2016/10/05 Javascript
Bootstrap笔记之缩略图、警告框实例详解
2017/03/09 Javascript
Three.js利用性能插件stats实现性能监听的方法
2017/09/25 Javascript
Node.js Express安装与使用教程
2018/05/11 Javascript
js中时间格式化的几种方法
2018/07/22 Javascript
vue实现多条件和模糊搜索功能
2019/05/28 Javascript
微信小程序 轮播图实现原理及优化详解
2019/09/29 Javascript
JavaScript函数柯里化实现原理及过程
2020/12/02 Javascript
Vue过滤器,生命周期函数和vue-resource简单介绍
2021/01/12 Vue.js
Python记录详细调用堆栈日志的方法
2015/05/05 Python
一篇文章入门Python生态系统(Python新手入门指导)
2015/12/11 Python
PHP实现发送和接收JSON请求
2018/06/07 Python
详解Python Matplotlib解决绘图X轴值不按数组排序问题
2019/08/05 Python
python每天定时运行某程序代码
2019/08/16 Python
Python数据分析pandas模块用法实例详解
2019/11/20 Python
python 使用递归实现打印一个数字的每一位示例
2020/02/27 Python
利用Python实现某OA系统的自动定位功能
2020/05/27 Python
CSS3实现10种Loading效果
2016/07/11 HTML / CSS
八皇后问题,输出了所有情况,不过有些结果只是旋转了90度
2016/08/15 面试题
大学生就业推荐信范文
2013/11/29 职场文书
教育课题研究自我鉴定范文
2013/12/28 职场文书
小学语文教学经验交流材料
2014/06/02 职场文书
装饰公司活动策划方案
2014/08/23 职场文书
放弃继承权公证书
2015/01/23 职场文书
旅游投诉信范文
2015/07/02 职场文书
钓鱼岛事件感想
2015/08/11 职场文书
php访问对象中的成员的实例方法
2021/11/17 PHP
数据设计之权限的实现
2022/08/05 MySQL