关于php内存的分配。
<?php
$t = memory_get_usage();
// 3125000
$i = 1;
$a[$i] = $i;
$i = 1111111111;
$a[$i] = $i;
$i = '1';
$a[$i] = $i;
$i = '111111111111111111111111111';
$a[$i] = $i;
echo memory_get_usage()-$t;
?>
请问如何计算出各个占用了多少内存的。谢谢各位拉。
------解决方案--------------------关注
ci1699 提的问题 都是好问题
------解决方案--------------------逐次输出、观察
最好的方法是查看源码中是如何构造变量表的
------解决方案--------------------php是基于c的,内存管理是不面向php的。
这种问题你要参考laruence大牛怎么说的。
http://www.laruence.com/2011/03/04/1894.html
http://www.laruence.com/2011/11/09/2277.html
------解决方案--------------------你应该用memory_get_usage(TRUE)比较,如果都换成TRUE,我估计输出都是一样的
本质上,php有自己的内存管理机制,这样的需求就要求申请的时候,需要更大块内存
然后有一套自己应对内存管理结构,减少系统调用次数
------解决方案--------------------
------解决方案--------------------我指的不是如何去申请内存的问题,而是他没有说明 php 是如何维护变量表的。
而 php 的变量应该是一个结构队列,每个每一项都应至少包括:变量名称、类型、值指针、是否是引用....
这才是我们需要关心的,而他是如何维护这张表的。却不是很重要
------解决方案--------------------
------解决方案--------------------多好的同学啊....
------解决方案--------------------前辈说,我们看看,受教了,谢了
------解决方案--------------------laruence是去了php 核心開發的中國人吧