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实现验证码功能
Oct 09 PHP
一个分页的论坛
Oct 09 PHP
php查看session内容的函数
Aug 27 PHP
php下几个常用的去空、分组、调试数组函数
Feb 22 PHP
PHP多线程抓取网页实现代码
Jul 22 PHP
深入for,while,foreach遍历时间比较的详解
Jun 08 PHP
PHP完全二叉树定义与实现方法示例
Oct 09 PHP
php实现数字补零的方法总结
Sep 12 PHP
Laravel关系模型指定条件查询方法
Oct 10 PHP
PHP设计模式之适配器模式(Adapter)原理与用法详解
Dec 12 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
Dec 25 PHP
Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解
Apr 06 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
星际争霸秘籍
2020/03/04 星际争霸
深入php self与$this的详解
2013/06/08 PHP
php中call_user_func函数使用注意事项
2014/11/21 PHP
php安装swoole扩展的方法
2015/03/19 PHP
PHP 实现的将图片转换为TXT
2015/10/21 PHP
PHP自定义函数获取URL中一级域名的方法
2016/08/23 PHP
php版微信公众平台实现预约提交后发送email的方法
2016/09/26 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
List Information About the Binary Files Used by an Application
2007/06/18 Javascript
javascript 事件绑定问题
2011/01/01 Javascript
javascript语言结构小记(一)
2011/09/10 Javascript
jQuery获得内容和属性方法及示例
2013/12/02 Javascript
jquery.mousewheel实现整屏翻屏效果
2015/08/30 Javascript
基于JS实现导航条之调用网页助手小精灵的方法
2016/06/17 Javascript
老生常谈Javascript中的原型和this指针
2016/10/09 Javascript
jQuery表单验证简单示例
2016/10/17 Javascript
前端主流框架vue学习笔记第一篇
2017/07/26 Javascript
认识jQuery的Promise的具体使用方法
2017/10/10 jQuery
在vue中使用公共过滤器filter的方法
2018/06/26 Javascript
基于Vue的商品主图放大镜方案详解
2019/09/19 Javascript
vue倒计时刷新页面不会从头开始的解决方法
2020/03/03 Javascript
Python os模块中的isfile()和isdir()函数均返回false问题解决方法
2015/02/04 Python
Python本地与全局命名空间用法实例
2015/06/16 Python
用Python写一个无界面的2048小游戏
2016/05/24 Python
pytorch + visdom CNN处理自建图片数据集的方法
2018/06/04 Python
tensorflow: 查看 tensor详细数值方法
2018/06/13 Python
Python closure闭包解释及其注意点详解
2019/08/28 Python
Python使用selenium + headless chrome获取网页内容的方法示例
2019/10/16 Python
HTML5 Canvas渐进填充与透明实现图像的Mask效果
2013/07/11 HTML / CSS
应届毕业生的个人自我鉴定
2013/10/24 职场文书
学校运动会广播稿
2014/10/11 职场文书
2014年学习部工作总结
2014/11/12 职场文书
单位未婚证明范本
2014/11/25 职场文书
学会Python数据可视化必须尝试这7个库
2021/06/16 Python
【海涛dota解说】DCG联赛第一周 LGD VS DH
2022/04/01 DOTA