为了账号安全,请及时绑定邮箱和手机立即绑定

memory_get_usage

我的输出结果:
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 回答

自己赞自己,有积分不?

7 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

memory_get_usage

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信