php怎么查看一个变量的占用内存

php怎么查看一个变量的占用内存php怎么查看一个变量的占用内存

大家好,又见面了,我是你们的朋友全栈君。

事例:
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个字节左右。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/105870.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月24日 下午4:00
下一篇 2022年4月24日 下午4:00


相关推荐

  • 用pycharm打包py程序_怎么打包python文件

    用pycharm打包py程序_怎么打包python文件使用Pycharm和Anancoda打包应用程序平时我们在运行Python项目时都需要在Pycharm中运行,因为里面或者Anancoda中已经导入了相应的包,库,配好了对应的环境。一般运行时不是太方便,特别是在给用户使用时,这就显得很麻烦了。所以我们需要将其单独打包出来并且能够运行。本文我以Pycharm和Anancoda打包我里面的一个计算器应用程序。开始吧!1.进入自己创建的环境安装pyinstaller首先进入命令行,win+r后输入cmd进入命令行。之后输入命令进入到自己创建的环境中,我

    2022年8月29日
    5
  • ElasticSearch进阶(五)MetricBeat的简单使用

    ElasticSearch进阶(五)MetricBeat的简单使用前言本章讲解 MetricBeat 的简单使用方法 1 概念上一章节我们学习了 Beats 中 filebeat 的简单使用 本次将进行 metricbeat 的简单使用 首先我们来看一下 metricbeat 下面的图片来自于官网 https www elastic co cn products beats metricbeat 通过这句话我们发现 metricbeat 用来

    2026年3月17日
    2
  • OpenClaw ACP 配置

    OpenClaw ACP 配置

    2026年3月13日
    3
  • windows环境下tomcat部署war包[通俗易懂]

    windows环境下tomcat部署war包[通俗易懂]1.从Eclipse中将项目打包成war包,Runas&gt;&gt;MavenInstall,然后将war包放在tomcat\webapps下,如图所示2.然后运行tomcat\bin目录下的startup.bat(运行后悔在webapps下生成相应名称的目录)3.运行成功,使用Postman测试成功…

    2022年6月2日
    51
  • scrapy爬虫出现Forbidden by robots.txt[通俗易懂]

    scrapy爬虫出现Forbidden by robots.txt[通俗易懂]先说结论,关闭scrapy自带的ROBOTSTXT_OBEY功能,在setting找到这个变量,设置为False即可解决。使用scrapy爬取淘宝页面的时候,在提交http请求时出现debug信息Forbiddenbyrobots.txt,看来是请求被拒绝了。开始因为是淘宝页面有什么保密机制,防止爬虫来抓取页面,于是在spider中填入各种header信息,伪装成浏览器,结果还是不行。。

    2022年6月3日
    32
  • idea 2021.5 mac 激活码(最新序列号破解)

    idea 2021.5 mac 激活码(最新序列号破解),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月20日
    95

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号