php查看一个变量的占用内存的实例代码

所属分类: 网络编程 / PHP编程 阅读数: 1751
收藏 0 赞 0 分享

事例:

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就是位大小

更多精彩内容其他人还在看

CI框架实现创建自定义类库的方法

这篇文章主要介绍了CI框架实现创建自定义类库的方法,结合实例形式分析了CI框架创建自定义类库的相关原理、步骤、实现方法与操作注意事项,需要的朋友可以参考下
收藏 0 赞 0 分享

Yii2.0 RESTful API 基础配置教程详解

这篇文章主要介绍了Yii2.0 RESTful API 基础配置教程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

CI框架附属类用法分析

这篇文章主要介绍了CI框架附属类用法,结合实例形式分析了CI框架附属类相关资源访问操作技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

CI框架网页缓存简单用法分析

这篇文章主要介绍了CI框架网页缓存简单用法,结合实例形式分析了CI框架网页缓存的原理,以及开启缓存、删除缓存等操作技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

php实现的PDO异常处理操作分析

这篇文章主要介绍了php实现的PDO异常处理操作,结合实例形式分析了pdo异常处理的相关原理、用法及操作注意事项,需要的朋友可以参考下
收藏 0 赞 0 分享

php PDO属性设置与操作方法分析

这篇文章主要介绍了php PDO属性设置与操作方法,结合实例形式分析了php pdo常见属性功能及相关的设置、获取操作技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

PHP抽象类基本用法示例

这篇文章主要介绍了PHP抽象类基本用法,结合实例形式分析了php抽象类的概念、原理、定义、使用方法及相关操作注意事项,代码注释包含较为详尽的说明信息,需要的朋友可以参考下
收藏 0 赞 0 分享

PHP面向对象程序设计继承用法简单示例

这篇文章主要介绍了PHP面向对象程序设计继承用法,结合具体实例形式分析了php面向对象程序设计中继承的相关概念、原理、使用技巧与相关操作注意事项,需要的朋友可以参考下
收藏 0 赞 0 分享

PHP实现函数内修改外部变量值的方法示例

这篇文章主要介绍了PHP实现函数内修改外部变量值的方法,涉及php全局变量、传值调用、引用等相关操作技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

PHP命名空间简单用法示例

这篇文章主要介绍了PHP命名空间简单用法,结合具体实例形式分析了php命名空间的简单定义与使用相关操作技巧,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多