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 相关文章推荐
用PHPdig打造属于你自己的Google[图文教程]
Feb 14 PHP
PHP 防注入函数(格式化数据)
Aug 08 PHP
PHP上传文件时文件过大$_FILES为空的解决方法
Nov 26 PHP
php环境套包 dedeampz 伪静态设置示例
Mar 26 PHP
一个图片地址分解程序(用于PHP小偷程序)
Aug 23 PHP
ThinkPHP上使用多说评论插件的方法
Oct 31 PHP
php中rename函数用法分析
Nov 15 PHP
php计算两个文件相对路径的方法
Mar 14 PHP
laravel学习教程之存取器
Jul 30 PHP
php中替换字符串函数strtr()和str_repalce()的用法与区别
Nov 25 PHP
PHP基于curl模拟post提交json数据示例
Jun 22 PHP
PHP程序守护进程化实现方法详解
Jul 16 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
使用sockets:从新闻组中获取文章(二)
2006/10/09 PHP
php抓取页面的几种方法详解
2013/06/17 PHP
基于PHP magic_quotes_gpc的使用方法详解
2013/06/24 PHP
php使用sql数据库 获取字段问题介绍
2013/08/12 PHP
php无限遍历文件夹示例分享
2014/03/04 PHP
PHP基于MySQL数据库实现对象持久层的方法
2015/06/17 PHP
PHP执行系统命令函数实例讲解
2021/03/03 PHP
新鲜出炉的js tips提示效果
2011/04/03 Javascript
JavaScript子类用Object.getPrototypeOf去调用父类方法解析
2013/12/05 Javascript
Javascript MVC框架Backbone.js详解
2014/09/18 Javascript
jQuery学习笔记之jQuery+CSS3的浏览器兼容性
2015/01/19 Javascript
JavaScript仿网易选项卡制作代码
2016/10/06 Javascript
js学习总结_选项卡封装(实例讲解)
2017/07/13 Javascript
JavaScript贪吃蛇小组件实例代码
2017/08/20 Javascript
关于Promise 异步编程的实例讲解
2017/09/01 Javascript
详解Vue中watch对象内属性的方法
2019/02/01 Javascript
微信小程序实现页面跳转传递参数(实体,对象)
2019/08/12 Javascript
Python网络爬虫项目:内容提取器的定义
2016/10/25 Python
用Python实现随机森林算法的示例
2017/08/24 Python
Python程序控制语句用法实例分析
2020/01/14 Python
new_zeros() pytorch版本的转换方式
2020/02/18 Python
Python自动化测试笔试面试题精选
2020/03/12 Python
如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
2016/12/22 HTML / CSS
Mio Skincare英国官网:身体紧致及孕期身体护理
2018/08/19 全球购物
波兰品牌鞋履在线商店:Eastend.pl
2020/01/11 全球购物
公司出纳岗位职责
2013/12/07 职场文书
打架检讨书100字
2014/01/08 职场文书
小学生运动会通讯稿
2014/09/23 职场文书
党员组织生活会发言材料
2014/10/17 职场文书
2014年世界艾滋病日宣传活动总结
2014/11/18 职场文书
2014年园林绿化工作总结
2014/12/11 职场文书
班主任先进事迹材料
2014/12/17 职场文书
领导参观欢迎词
2015/01/26 职场文书
大学生暑期社会实践的个人总结!
2019/07/17 职场文书
Python使用protobuf序列化和反序列化的实现
2021/05/19 Python
Java中的Kotlin 内部类原理
2022/06/16 Java/Android