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自动获取目录下的模板的代码
Aug 08 PHP
php表单提交问题的解决方法
Apr 12 PHP
浅析PHP的ASCII码转换类
Jul 05 PHP
php如何解决无法上传大于8M的文件问题
Mar 10 PHP
php程序总是提示验证码输入有误解决方案
Jan 07 PHP
php基于session实现数据库交互的类实例
Aug 03 PHP
php生成图片验证码-附五种验证码
Aug 19 PHP
PHP Imagick完美实现图片裁切、生成缩略图、添加水印
Feb 22 PHP
CI框架表单验证实例详解
Nov 21 PHP
PHP实现的折半查找算法示例
Dec 19 PHP
PHP Trait代码复用类与多继承实现方法详解
Jun 17 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
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
2007/01/15 PHP
解析zend studio中直接导入svn中的项目的方法步骤
2013/06/21 PHP
PHP5.2中PDO的简单使用方法
2016/03/25 PHP
PHP函数引用返回的实例详解
2016/09/11 PHP
PHP常见的序列化与反序列化操作实例分析
2019/10/28 PHP
PHP Trait功能与用法实例分析
2020/06/03 PHP
jQuery旋转插件—rotate支持(ie/Firefox/SafariOpera/Chrome)
2013/01/16 Javascript
Jquery 表单验证类介绍与实例
2013/06/09 Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
2015/10/02 Javascript
用js动态添加html元素,以及属性的简单实例
2016/07/19 Javascript
javascript中对象的定义、使用以及对象和原型链操作小结
2016/12/14 Javascript
JS数组返回去重后数据的方法解析
2017/01/03 Javascript
Javascript调试之console对象——你不知道的一些小技巧
2017/07/10 Javascript
Angular 封装并发布组件的方法示例
2018/04/19 Javascript
Vue仿支付宝支付功能
2018/05/25 Javascript
vuex actions传递多参数的处理方法
2018/09/18 Javascript
nodeJS进程管理器pm2的使用
2019/01/09 NodeJs
浅谈JavaScript_DOM学习篇_图片切换小案例
2019/03/19 Javascript
Python+Opencv识别两张相似图片
2020/03/23 Python
Windows下Eclipse+PyDev配置Python+PyQt4开发环境
2016/05/17 Python
解决Python pandas plot输出图形中显示中文乱码问题
2018/12/12 Python
VSCode中自动为Python文件添加头部注释
2019/11/14 Python
基于python实现语音录入识别代码实例
2020/01/17 Python
Python连接Oracle之环境配置、实例代码及报错解决方法详解
2020/02/11 Python
利用python控制Autocad:pyautocad方式
2020/06/01 Python
HTML5打开手机扫码功能及优缺点
2017/11/27 HTML / CSS
GLAMGLOW格莱魅美国官网:美国知名的面膜品牌
2016/12/31 全球购物
新加坡领先的在线生活方式和杂货购物网站:EAMART
2019/04/02 全球购物
中国领先的汽车保养服务平台:途虎养车
2019/10/18 全球购物
英国第一职业高尔夫商店:Clickgolf.co.uk
2020/11/18 全球购物
我看到了用指针调用函数的不同语法形式
2014/07/16 面试题
遇到的Mysql的面试题
2014/06/29 面试题
机动车登记业务委托书
2014/10/08 职场文书
教师党员学习群众路线心得体会
2014/11/04 职场文书
公司员工辞职信范文
2015/05/12 职场文书
在人间读书笔记
2015/06/30 职场文书