php怎样获取变量所占内存?
Admin 2021-05-07 群英技术资讯 578 次浏览
很多PHP新手可能还不太了解要如何查看一个变量占用内存,对此下面php获取变量所占内存大小的方法,分享给大家,有需要的朋友可以参考一下。
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获取变量所占内存内容大家可以继续关注其他文章。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
integer类型就是集合Z={...,-2,-1,0,1,2,...}中的一个数字。integer可以已10进制,8进制,16进制表示。用八进制表示的时候,数字需要已0(零)开头;用十六进制表示的时候,数字需要已0x(零x)或者0X(零大写X)开头; integer溢出:integer溢出的时候,会自动的转化为float类型。同样的,如果integer类型的
php引用的使用注意:1、php中引用不是指针,允许用两个变量来指向同一个内容。2、如果在foreach语句中给一个具有引用的变量赋值,被引用的对象也被改变。
php7安装intl扩展的方法:1、下载icu源码包;2、解压icu及编译安装;3、下载并解压php包;4、进入php解压包目录下,编译安装;5、配置文件及启动文件即可。
php想调用swoole时必须要开启Swoole扩展。Swoole是C语言编写,采用编译安装的方式。Swoole是php的服务器异步方案之一。
下面由phpstorm教程栏目给大家介绍Phpstorm-限制加载文件,希望对需要的朋友有所帮助!
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008