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+mysql 实现身份验证代码
Mar 24 PHP
php数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
Nov 07 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(六)
Jun 23 PHP
浅谈php安全性需要注意的几点事项
Jul 17 PHP
PHP实现简单实用的验证码类
Jul 29 PHP
PHP7常量数组用法分析
Sep 26 PHP
thinkPHP实现多字段模糊匹配查询的方法
Dec 01 PHP
php获取手机端的号码以及ip地址实例代码
Sep 12 PHP
PHP微信网页授权的配置文件操作分析
May 29 PHP
thinkphp5.1框架模板布局与模板继承用法分析
Jul 19 PHP
thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例
Oct 10 PHP
laravel 自定义常量的两种方案
Oct 14 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
Linux下ZendOptimizer的安装与配置方法
2007/04/12 PHP
php的chr和ord函数实现字符加减乘除运算实现代码
2011/12/05 PHP
ThinkPHP3.1的Widget新用法
2014/06/19 PHP
PHP数据库操作Helper类完整实例
2016/05/11 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
laravel unique验证、确认密码confirmed验证以及密码修改验证的方法
2019/10/16 PHP
jquery 应用代码 方便的排序功能
2010/02/06 Javascript
js 遍历对象的属性的代码
2011/12/29 Javascript
JS给Textarea文本框添加行号的方法
2015/08/20 Javascript
JS实现仿QQ效果的三级竖向菜单
2015/09/25 Javascript
jQuery的选择器中的通配符[id^='code']或[name^='code']及jquery选择器总结
2015/12/24 Javascript
Vue.js每天必学之数据双向绑定
2016/09/05 Javascript
微信小程序picker组件简单用法示例【附demo源码下载】
2017/12/05 Javascript
微信小程序数字滚动插件使用详解
2018/02/02 Javascript
vue操作下拉选择器获取选择的数据的id方法
2018/08/24 Javascript
详解Vue调用手机相机和相册以及上传
2019/05/05 Javascript
layui添加动态菜单与选项卡
2019/07/26 Javascript
JS使用正则表达式提交页面验证的代码
2019/10/16 Javascript
vue项目,代码提交至码云,iconfont的用法说明
2020/07/30 Javascript
Python类的基础入门知识
2008/11/24 Python
Python实现将n个点均匀地分布在球面上的方法
2015/03/12 Python
python同时给两个收件人发送邮件的方法
2015/04/30 Python
python实现决策树C4.5算法详解(在ID3基础上改进)
2017/05/31 Python
对numpy中数组元素的统一赋值实例
2018/04/04 Python
对Python 窗体(tkinter)文本编辑器(Text)详解
2018/10/11 Python
python实现名片管理系统
2018/11/29 Python
python可视化篇之流式数据监控的实现
2019/08/07 Python
Pyqt5自适应布局实例
2019/12/13 Python
澳大利亚购买健身器材网站:Gym Direct
2019/12/19 全球购物
我的教育故事演讲稿
2014/05/04 职场文书
学前班语言教学计划
2015/01/20 职场文书
教师读书笔记
2015/06/29 职场文书
关于元旦的广播稿2016
2015/12/17 职场文书
远程教育学习心得体会
2016/01/23 职场文书
idea搭建可运行Servlet的Web项目
2021/06/26 Java/Android
Spring mvc是如何实现与数据库的前后端的连接操作的?
2021/06/30 Java/Android