memory_get_usage

来源:3-4 PHP-什么是变量的数据类型

江水恩泽明湖

2017-09-15 23:26

我的输出结果:
368272
184
160
160
352

  关于memory_get_usage问题,如果有处理过C指针,内存调用或者汇编的经验就很好理解。
  memory_get_usage,可以检测到内存的位置,你们当他是一个自动搜索器
    
  368272  :
  你定义的变量值肯定要有地方保存,不然cpu怎么知道在哪吧,对吧。当然系统肯定不会让我们自己去

保存变量的,太麻烦而且容易会修改一些数据出错。
  我们用memory_get_usage()检测了一下内存,系统就知道发现我们内存是从368272开始的。

  echo $m1 = memory_get_usage();
  368272简单说就是你存放变量值或者php中数据的开始,转换为16进制就是5000:9E90这个内存开始。

我们把这个开始的内存地址命名为m1。

  $var_string = "123";  
  我们定义了字符串”123“对吧,这时候这个字符串被保存到我们前面定义的内存m1地址中了,这些操

作是系统自动的,我们并没有操作他。
  原来的内存地址为368272,我们加入了一个字符串,内存肯定被占用了一些对吧。这就和向一个杯子

倒水(字符串)一样,水的位置肯定增加改变吧,这样我们的内存就被消耗了一些了。
  原来的内存为368272,根据输出结果后面为184,我们可以知道占用了184的内存,m1+184=368456,所

以368456是现在内存的位置了。
    
  184  :
  $m2 = memory_get_usage()-$m1;  
  m2就很简单了,我们用memory_get_usage()又检测一下内存得出是368456,我们用 m2=368456-m1(368272)=184。出来了吧,这就是184的来历,也是m2的值。
 
  后面的160、160、352也是一样的。

写回答 关注

1回答

  • 江水恩泽明湖
    2017-09-15 23:28:30

    自己赞自己,有积分不?

PHP入门篇

PHP入门教程轻松学习,行业大牛帮您快速掌握PHP编程基础知识。

455994 学习 · 6306 问题

查看课程

相似问题