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的header和asp中的redirect比较
Oct 09 PHP
php对gzip文件或者字符串解压实例参考
Jul 25 PHP
Php 构造函数construct的前下划线是双的_
Dec 08 PHP
用PHP代替JS玩转DOM的思路及示例代码
Jun 15 PHP
PHP错误Allowed memory size of 67108864 bytes exhausted的3种解决办法
Jul 28 PHP
php获取指定(访客)IP所有信息(地址、邮政编码、国家、经纬度等)的方法
Jul 06 PHP
PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例
Jan 07 PHP
PHP与SQL语句常用大全
Dec 10 PHP
php根据用户名和手机号查询是否存在手机号码
Feb 16 PHP
Mac下快速搭建PHP开发环境步骤详解
May 05 PHP
Thinkphp5 自定义上传文件名的实现方法
Jul 23 PHP
PHP实现两种排课方式
Jun 26 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
第七节--类的静态成员
2006/11/16 PHP
PHP实现腾讯短网址生成api接口实例
2020/12/08 PHP
JS 操作符整理[推荐收藏]
2011/11/15 Javascript
jQuery弹出(alert)select选择的值
2013/04/21 Javascript
Jquery实现视频播放页面的关灯开灯效果
2013/05/27 Javascript
jquery动态添加option示例
2013/12/30 Javascript
js的延迟执行问题分析
2014/06/23 Javascript
js构造函数、索引数组和属性的实现方式和使用
2014/11/16 Javascript
jQuery基础语法实例入门
2014/12/23 Javascript
JS仿Windows开机启动Loading进度条的方法
2015/02/26 Javascript
jQuery实现文本框邮箱输入自动补全效果
2015/11/17 Javascript
AngularJs学习第五篇从Controller控制器谈谈$scope作用域
2016/06/08 Javascript
vue从使用到源码实现教程详解
2016/09/19 Javascript
浅谈js对象的创建和对6种继承模式的理解和遐想
2016/10/16 Javascript
Bootstrap CSS布局之按钮
2016/12/17 Javascript
vue配置请求本地json数据的方法
2018/04/11 Javascript
layer更改皮肤的实现方法
2019/09/11 Javascript
nodejs开发一个最简单的web服务器实例讲解
2020/01/02 NodeJs
python进程管理工具supervisor使用实例
2014/09/17 Python
python中MySQLdb模块用法实例
2014/11/10 Python
在Mac OS上搭建Python的开发环境
2015/12/24 Python
关于numpy中np.nonzero()函数用法的详解
2017/02/07 Python
python并发编程多进程 模拟抢票实现过程
2019/08/20 Python
Python Opencv提取图片中某种颜色组成的图形的方法
2019/09/19 Python
pandas DataFrame 数据选取,修改,切片的实现
2020/04/24 Python
老生常谈CSS中的长度单位
2016/06/27 HTML / CSS
html5 浏览器支持 如何让所有的浏览器都支持HTML5标签样式
2012/12/07 HTML / CSS
canvas中普通动效与粒子动效的实现代码示例
2019/01/03 HTML / CSS
日本土著品牌,综合型购物网站:Cecile
2016/08/23 全球购物
一些网络技术方面的面试题
2014/05/01 面试题
工程承包协议书范本
2014/09/29 职场文书
公司表扬稿范文
2015/05/05 职场文书
工程款催款函
2015/06/24 职场文书
nginx前后端同域名配置的方法实现
2021/03/31 Servers
Redis 限流器
2022/05/15 Redis
uniapp引入支付宝原生扫码插件步骤详解
2022/07/23 Javascript