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 相关文章推荐
轻松修复Discuz!数据库
May 03 PHP
用php实现让页面只能被百度gogole蜘蛛访问的方法
Dec 29 PHP
PHP中图片等比缩放的实例
Mar 24 PHP
php 常用算法和时间复杂度
Jul 01 PHP
php MessagePack介绍
Oct 06 PHP
CodeIgniter CLI模式简介
Jun 17 PHP
新浪SAE搭建PHP项目教程
Jan 28 PHP
深入剖析浏览器退出之后php还会继续执行么
May 17 PHP
Json_decode 解析json字符串为NULL的解决方法(必看)
Feb 17 PHP
kindeditor 加入七牛云上传的实例讲解
Nov 12 PHP
php实现生成带二维码图片并强制下载功能
Feb 24 PHP
PHP常见过waf webshell以及最简单的检测方法
May 21 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(7) php 字符串相关应用
2010/03/05 PHP
PHP中绘制图像的一些函数总结
2014/11/19 PHP
php生成excel列名超过26列大于Z时的解决方法
2014/12/29 PHP
php使用PDO操作MySQL数据库实例
2014/12/30 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
2018/02/06 PHP
jQuery弹出层插件简化版代码下载
2008/10/16 Javascript
利用google提供的API(JavaScript接口)获取网站访问者IP地理位置的代码详解
2010/07/24 Javascript
用NODE.JS中的流编写工具是要注意的事项
2016/03/01 Javascript
全面解析Javascript无限添加QQ好友原理
2016/06/15 Javascript
AnjularJS中$scope和$rootScope的区别小结
2016/09/18 Javascript
jQuery UI Grid 模态框中的表格实例代码
2017/04/01 jQuery
微信小程序获取微信运动步数的实例代码
2017/07/20 Javascript
Vue父子组件双向绑定传值的实现方法
2018/07/31 Javascript
vue3.0 CLI - 2.2 - 组件 home.vue 的初步改造
2018/09/14 Javascript
javascript中如何判断类型汇总
2019/05/14 Javascript
[05:04]DOTA2上海特级锦标赛主赛事第二日TOP10
2016/03/04 DOTA
[02:12]打造更好的电竞完美世界:完美盛典回顾篇
2018/12/19 DOTA
python脚本实现查找webshell的方法
2014/07/31 Python
python获取文件扩展名的方法
2015/07/06 Python
Django中使用第三方登录的示例代码
2018/08/20 Python
浅谈Python脚本开头及导包注释自动添加方法
2018/10/27 Python
Python 高效编程技巧分享
2020/09/10 Python
pandas apply使用多列计算生成新的列实现示例
2021/02/24 Python
韩国流行时尚女装网站:Dintchina(中文)
2018/07/19 全球购物
学前教育教师求职自荐信
2013/09/22 职场文书
致跳高运动员广播稿
2014/01/13 职场文书
养生餐厅创业计划书范文
2014/03/26 职场文书
倡议书格式
2014/04/14 职场文书
公司口号大全
2014/06/11 职场文书
个人求职自荐信范文
2014/06/20 职场文书
刑事和解协议书范本
2014/11/19 职场文书
房屋分割离婚协议书范本
2014/12/01 职场文书
生产现场禁烟通知
2015/04/23 职场文书
2016年春季运动会加油稿
2015/07/22 职场文书
机关干部纪律作风整顿心得体会
2016/01/23 职场文书
Pillow图像处理库安装及使用
2022/04/12 Python