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
PHP新手上路(三)
Oct 09 PHP
php下实现一个阿拉伯数字转中文数字的函数
Jul 10 PHP
一个php Mysql类 可以参考学习熟悉下
Jun 21 PHP
php 日期时间处理函数小结
Dec 18 PHP
GBK的页面输出JSON格式的php函数
Feb 16 PHP
php curl 伪造IP来源的实例代码
Nov 01 PHP
PHP中COOKIES使用示例
Jul 26 PHP
CI框架中数据库操作函数$this-&gt;db-&gt;where()相关用法总结
May 17 PHP
php回调函数处理数组操作示例
Apr 13 PHP
PHP 对接美团大众点评团购券(门票)的开发步骤
Apr 03 PHP
php双向队列实例讲解
Nov 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
php xml留言板 xml存储数据的简单例子
2009/08/24 PHP
php管理nginx虚拟主机shell脚本实例
2014/11/19 PHP
Smarty分页实现方法完整实例
2016/05/11 PHP
javascript 定义初始化数组函数
2009/09/07 Javascript
线路分流自动智能跳转代码,自动选择最快镜像网站(js)
2011/10/31 Javascript
JavaScript高级程序设计 阅读笔记(十二) js内置对象Math
2012/08/14 Javascript
js 获取坐标 通过JS得到当前焦点(鼠标)的坐标属性
2013/01/04 Javascript
使用js判断控件是否获得焦点
2014/01/03 Javascript
简易的投票系统以及js刷票思路和方法
2015/04/07 Javascript
Angularjs制作简单的路由功能demo
2015/04/14 Javascript
详解JavaScript RegExp对象
2017/02/04 Javascript
js,jq,css多方面实现简易下拉菜单功能
2017/05/13 Javascript
关于vue.js组件数据流的问题
2017/07/26 Javascript
JS实现分页浏览横向图片(类轮播)实例代码
2017/11/06 Javascript
微信小程序实现人脸检测功能
2018/05/25 Javascript
js实现无缝轮播图效果
2020/03/09 Javascript
Nuxt的动态路由和参数校验操作
2020/11/09 Javascript
Python3使用requests包抓取并保存网页源码的方法
2016/03/15 Python
Linux RedHat下安装Python2.7开发环境
2017/05/20 Python
K-means聚类算法介绍与利用python实现的代码示例
2017/11/13 Python
5款非常棒的Python工具
2018/01/05 Python
解决pytorch报错:AssertionError: Invalid device id的问题
2020/01/10 Python
Python模块相关知识点小结
2020/03/09 Python
python opencv实现图片缺陷检测(讲解直方图以及相关系数对比法)
2020/04/07 Python
50个强大璀璨的CSS3/JS技术运用实例
2010/02/27 HTML / CSS
CSS3 border-radius圆角的实现方法及用法详解
2020/09/14 HTML / CSS
HTML5 客户端数据库简易使用:IndexedDB
2019/12/19 HTML / CSS
荷兰男士时尚网上商店:Suitable
2017/12/25 全球购物
幼儿园门卫岗位职责
2014/02/14 职场文书
职业生涯规划书结束语
2014/04/15 职场文书
团队精神的演讲稿
2014/05/14 职场文书
维稳工作承诺书
2015/01/20 职场文书
2015年小学数学教研组工作总结
2015/05/21 职场文书
javaScript Array api梳理
2021/03/31 Javascript
教你利用Selenium+python自动化来解决pip使用异常
2021/05/20 Python
pytorch 如何使用float64训练
2021/05/24 Python