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
解决中英文字符串长度问题函数
Jan 16 PHP
使用php发送有附件的电子邮件-(PHPMailer使用的实例分析)
Apr 26 PHP
php实现监控varnish缓存服务器的状态
Dec 30 PHP
Yii控制器中filter过滤器用法分析
Jul 15 PHP
关于PHP通用返回值设置方法
Mar 31 PHP
利用php-cli和任务计划实现刷新token功能的方法
May 03 PHP
PHP实现的简单对称加密与解密方法实例小结
Aug 28 PHP
thinkPHP框架自动填充原理与用法分析
Apr 03 PHP
PHP自动识别当前使用移动终端
May 21 PHP
PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解
Jun 03 PHP
php 多个变量指向同一个引用($b = &amp;$a)用法分析
Nov 13 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入门的学习方法
2007/01/02 PHP
php下intval()和(int)转换使用与区别
2008/07/18 PHP
php unset全局变量运用问题的深入解析
2013/06/17 PHP
php轻量级的性能分析工具xhprof的安装使用
2015/08/12 PHP
php生成网页桌面快捷方式
2017/05/05 PHP
yii gridview实现时间段筛选功能
2017/08/15 PHP
jQuery实现单行文字间歇向上滚动源代码
2013/06/02 Javascript
javascript闭包的理解
2015/04/01 Javascript
跟我学习javascript解决异步编程异常方案
2015/11/23 Javascript
JavaScript小技巧整理
2015/12/30 Javascript
JavaScript中style.left与offsetLeft的使用及区别详解
2016/06/08 Javascript
Node.js中.pfx后缀文件的处理方法
2017/03/10 Javascript
vue2.0 自定义组件的方法(vue组件的封装)
2018/06/05 Javascript
浅谈vue项目打包优化策略
2018/09/29 Javascript
微信小程序wepy框架学习和使用心得详解
2019/05/24 Javascript
vue-cli配置flexible过程详解
2019/07/04 Javascript
Nodejs技巧之Exceljs表格操作用法示例
2019/11/06 NodeJs
[40:06]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第一场
2018/04/04 DOTA
python字符串连接方法分析
2016/04/12 Python
Python实现将16进制字符串转化为ascii字符的方法分析
2017/07/21 Python
python实现图书管理系统
2018/03/12 Python
python处理multipart/form-data的请求方法
2018/12/26 Python
详解Python爬取并下载《电影天堂》3千多部电影
2019/04/26 Python
使用Python自动生成HTML的方法示例
2019/08/06 Python
python2.7的flask框架之引用js&amp;css等静态文件的实现方法
2019/08/22 Python
一款利用纯css3实现的360度翻转按钮的实例教程
2014/11/05 HTML / CSS
CSS3绘制超炫的上下起伏波动进度加载动画
2016/04/21 HTML / CSS
html table呈现个人简历以及单元格宽度失效的问题解决
2021/01/22 HTML / CSS
亿企通软件测试面试题
2012/04/10 面试题
工程管理造价应届生求职信
2013/11/13 职场文书
微信营销策划方案
2014/02/24 职场文书
战略合作意向书
2014/07/29 职场文书
2015年学校工作总结范文
2015/04/20 职场文书
2016党员发展对象培训心得体会
2016/01/08 职场文书
python基础详解之if循环语句
2021/04/24 Python
使用python绘制横竖条形图
2022/04/21 Python