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中的Session和Cookie
Jun 21 PHP
页面乱码问题的根源及其分析
Aug 09 PHP
php禁止某ip或ip地址段访问的方法
Feb 25 PHP
百万级别知乎用户数据抓取与分析之PHP开发
Sep 28 PHP
Zend Framework实现具有基本功能的留言本(附demo源码下载)
Mar 22 PHP
PHP创建word文档的方法(平台无关)
Mar 29 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
Aug 17 PHP
详解PHP使用日期时间处理器Carbon人性化显示时间
Aug 10 PHP
利用PHP扩展Xhprof分析项目性能实践教程
Sep 05 PHP
php命名空间设计思想、用法与缺点分析
Jul 17 PHP
Laravel使用Queue队列的技巧汇总
Sep 02 PHP
PHP过滤器 filter_has_var() 函数用法实例分析
Apr 23 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
手把手教你打印出PDF(关于fpdf的简单应用)
2013/06/25 PHP
WordPress中用于获取文章作者与分类信息的方法整理
2015/12/17 PHP
PHP类与对象后期静态绑定操作实例详解
2018/12/20 PHP
jquery 指南/入门基础
2007/11/30 Javascript
用JavaScript玩转游戏物理(一)运动学模拟与粒子系统
2010/06/19 Javascript
jQuery调用AJAX时Get和post公用的乱码解决方法实例说明
2013/06/04 Javascript
基于jQuery和Bootstrap框架实现仿知乎前端动态列表效果
2016/11/09 Javascript
文本溢出插件jquery.dotdotdot.js使用方法详解
2017/06/22 jQuery
Vue单文件组件基础模板小结
2017/08/10 Javascript
Vue.js与 ASP.NET Core 服务端渲染功能整合
2017/11/16 Javascript
使用use注册Vue全局组件和全局指令的方法
2018/03/08 Javascript
vuex实现登录状态的存储,未登录状态不允许浏览的方法
2018/03/09 Javascript
vue 标签属性数据绑定和拼接的实现方法
2018/05/17 Javascript
vue使用监听实现全选反选功能
2018/07/06 Javascript
详解vue移动端项目的适配(以mint-ui为例)
2018/08/17 Javascript
webpack 开发和生产并行设置的方法
2018/11/08 Javascript
javascript Canvas动态粒子连线
2020/01/01 Javascript
bootstrap实现嵌套模态框的实例代码
2020/01/10 Javascript
[01:15:12]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#4Newbee VS CDEC
2016/03/03 DOTA
如何使用python爬取csdn博客访问量
2016/02/14 Python
Python在线运行代码助手
2016/07/15 Python
Pyhton中单行和多行注释的使用方法及规范
2016/10/11 Python
Django应用程序中如何发送电子邮件详解
2017/02/04 Python
开源Web应用框架Django图文教程
2017/03/09 Python
python利用正则表达式排除集合中字符的功能示例
2017/10/10 Python
python 除法保留两位小数点的方法
2018/07/16 Python
详解【python】str与json类型转换
2019/04/29 Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
2019/06/13 Python
Django xadmin安装及使用详解
2020/10/26 Python
Python爬虫破解登陆哔哩哔哩的方法
2020/11/17 Python
利用CSS3实现毛玻璃效果示例源码
2016/09/25 HTML / CSS
美国在线纱线商店:Darn Good Yarn
2019/03/20 全球购物
介绍一下常见的木马种类
2014/11/15 面试题
销售经理竞聘书
2014/03/31 职场文书
学生保证书范文
2014/04/28 职场文书
如何写贫困证明申请书
2014/10/29 职场文书