PHP内存释放有关的操作
来源:互联网 发布:利用网络赚钱 编辑:程序博客网 时间:2024/05/04 18:18
1、&符号的影响
显式引用一个变量,会增加该内存的引用计数:
$a = "something";
$b = &$a;
此时unset($a), 但是仍有$b指向该内存区域的引用,内存不会释放。
2、unset函数的影响
unset只是断开一个变量到一块内存区域的连接,同时将该内存区域的引用计数-1;但是在循环体内部,例如:$a=new A(); unset($a);并不会将$a的引用计数减到零;
3、对变量赋null值操作的影响;
$a = null 是直接将$a 指向的数据结构置空,同时将其引用计数归0。
4、脚本执行结束的影响
脚本执行结束,该脚本中使用的所有内存都会被释放,不论是否有引用环。
那么以上介绍了这么多和内存有关的东西,但是内存的回收都是由PHP的垃圾回收进程来进行的。当然你也可以像写C一样,自己手动回收进程,对所使用的变量进行null赋值。但这样会增加了程序的复杂度,而一般对于PHP来说不建议这样做,如果像你的问答里说的,在处理大量和运行时间长的代码里,那最好还是手动去销毁一些不使用的变量。并且可以通过memory_get_usage和memory_get_peak_usage等函数监测内存的使用情况。
0 0
- PHP内存释放有关的操作
- 有关 list 内存释放的小技巧
- 【OpenCV】有关内存释放的一些问题
- 【OpenCV】有关内存释放的一些问题
- 【OpenCV】有关内存释放的一些问题
- 【OpenCV】有关内存释放的一些问题
- 有关 list 内存释放的小技巧
- 【OpenCV】有关内存释放的一些问题
- opencv-有关内存释放的一些问题
- 【OpenCV】有关内存释放的一些问题
- opencv有关内存释放的问题
- 【OpenCV】有关内存释放的一些问题
- 有关内存释放的一些问题
- 【OpenCV】有关内存释放的一些问题
- PHP的内存释放问题
- 【OpenCV】有关内存释放 总结
- 【OpenCV】有关内存释放 总结
- 深入理解.Net中的内存释放,以及有关的注意事项
- git pull报错:Auto Merge Failed; Fix Conflicts and Then Commit the Result
- Spring Batch(5): Step详解
- Mongodb简介
- regex in SearchEverything
- table中head表头固定,body滚动
- PHP内存释放有关的操作
- mybatis测试的时候报错No suitable driver found for jdbc。。。解决办法
- hadoop1.x 与hadoop2.x 架构变化分析
- 关键字错误。。。
- Convolutional Networks for MNIST in Tensorflow
- 备忘录
- java 对象转换为json
- 分别用ffmpeng和taglib开源库获取音频文件中的专辑封面图片
- MyEclipse或eclipse remove @override annotation 问题解决参考