关于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是基于c的,内存管理是不面向php的。 这种问题你要参考laruence大牛怎么说的。 http://www.laruence.com/2011/03/04/1894.html http://www.laruence.com/2011/11/09/2277.html 说实在的,那些文章说的云山雾罩,点到为止。 ……
------解决方案-------------------- 我指的不是如何去申请内存的问题,而是他没有说明 php 是如何维护变量表的。
而 php 的变量应该是一个结构队列,每个每一项都应至少包括:变量名称、类型、值指针、是否是引用....
这才是我们需要关心的,而他是如何维护这张表的。却不是很重要
------解决方案--------------------
探讨
我指的不是如何去申请内存的问题,而是他没有说明 php 是如何维护变量表的。 而 php 的变量应该是一个结构队列,每个每一项都应至少包括:变量名称、类型、值指针、是否是引用.... 这才是我们需要关心的,而他是如何维护这张表的。却不是很重要
------解决方案-------------------- 多好的同学啊....
探讨
谢谢楼上各位大哥。 sina云什么有时候真慢。大半天打不开。 我还在折腾那排序。昨晚又搞到3点多=_= 想用php位图来排序,但耗太大内存。 现在想方法优化。晚点再贴代码上来。
------解决方案-------------------- 前辈说,我们看看,受教了,谢了
------解决方案-------------------- laruence是去了php 核心開發的中國人吧
Kenyataan: Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn