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 相关文章推荐
不用数据库的多用户文件自由上传投票系统(2)
Oct 09 PHP
PHP企业级应用之常见缓存技术篇
Jan 27 PHP
PDO版本问题 Invalid parameter number: no parameters were bound
Jan 06 PHP
windows下PHP_intl.dll正确配置方法(apache2.2+php5.3.5)
Jan 14 PHP
排序算法之PHP版快速排序、冒泡排序
Apr 09 PHP
php数组中删除元素之重新索引的方法
Sep 16 PHP
twig模板常用语句实例小结
Feb 04 PHP
PHP获取访问页面HTTP状态码的实现代码
Nov 03 PHP
PHP实现十进制、二进制、八进制和十六进制转换相关函数用法分析
Apr 25 PHP
PHP实现的折半查询算法示例
Oct 09 PHP
详细对比php中类继承和接口继承
Oct 11 PHP
PHP反射基础知识回顾
Sep 10 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中用文本文件做数据库的实现方法
2008/03/27 PHP
php中隐形字符65279(utf-8的BOM头)问题
2014/08/16 PHP
php绘制一个矩形的方法
2015/01/24 PHP
php打乱数组二维数组多维数组的简单实例
2016/06/17 PHP
使用ThinkPHP的自动完成实现无限级分类实例详解
2016/09/02 PHP
Laravel框架实现多个视图共享相同数据的方法详解
2019/07/09 PHP
一张表格告诉你windows.onload()与$(document).ready()的区别
2014/05/16 Javascript
JavaScript实现的内存数据库LokiJS介绍和入门实例
2014/11/17 Javascript
javascript常见数字进制转换实例分析
2016/04/21 Javascript
bootstrap实现动态进度条效果
2017/03/08 Javascript
用nodeJS搭建本地文件服务器的几种方法小结
2017/03/16 NodeJs
如何使用Bootstrap 按钮实例详解
2017/03/29 Javascript
JS脚本实现网页自动秒杀点击
2018/01/11 Javascript
VUE + UEditor 单图片跨域上传功能的实现方法
2018/02/08 Javascript
seajs下require书写约定实例分析
2018/05/16 Javascript
微信小程序使用for循环动态渲染页面操作示例
2018/12/25 Javascript
在React中写一个Animation组件为组件进入和离开加上动画/过度效果
2019/06/24 Javascript
vue 解决路由只变化参数页面组件不更新问题
2019/11/05 Javascript
vue+element导航栏高亮显示的解决方式
2019/11/12 Javascript
python 装饰器功能以及函数参数使用介绍
2012/01/27 Python
Python Web框架Flask中使用七牛云存储实例
2015/02/08 Python
Python的string模块中的Template类字符串模板用法
2016/06/27 Python
Python分析彩票记录并预测中奖号码过程详解
2019/07/09 Python
使用python创建Excel工作簿及工作表过程图解
2020/05/27 Python
Python Scrapy多页数据爬取实现过程解析
2020/06/12 Python
关于Theano和Tensorflow多GPU使用问题
2020/06/19 Python
css3过渡_动力节点Java学院整理
2017/07/11 HTML / CSS
留学自荐信的技巧
2013/10/17 职场文书
行政经理的岗位职责
2013/11/23 职场文书
英文自荐信
2013/12/19 职场文书
自考毕业自我鉴定
2014/03/18 职场文书
机关办公室岗位职责
2014/04/16 职场文书
先进典型事迹材料
2014/12/29 职场文书
家长学校教学计划
2015/01/19 职场文书
详解PHP Swoole与TCP三次握手
2021/05/27 PHP
Python 实现Mac 屏幕截图详解
2021/10/05 Python