欢迎使用CSDN-markdown编辑器
来源:互联网 发布:vscode markdown 编辑:程序博客网 时间:2024/06/05 16:53
初看php回收机制的心得
题外话 — php变量存储方式
每个php变量都存在一个叫”zval”的变量容器中。一个zval变量容器,除了包含变量的类型和值,还包括两个字节的额外信息。第一个是”is_ref”,是个bool值,用来标识这个变量是否是属于引用集合(reference set)。通过这个字节,php引擎才能把普通变量和引用变量区分开来,由于php允许用户通过使用&来使用自定义引用,zval变量容器中还有一个内部引用计数机制,来优化内存使用。第二个额外字节是”refcount”,用以表示指向这个zval变量容器的变量(也称符号即symbol)个数。所有的符号存在一个符号表中,其中每个符号都有作用域(scope),那些主脚本(比如:通过浏览器请求的的脚本)和每个函数或者方法也都有作用域。默认情况下,一个新声明的变量is_ref为false,refcount的数值为1。而且当refcount的数值为1的情况下,is_ref的值一定为false。
- 垃圾回收机制是 php5.3加入的
- 垃圾回收机制的特点
1)在平常脚本中有循环回收机制运行的情况下,内存的节省将允许更多这种脚本同时运行在你的服务器上。因为总共使用的内存没达到上限。
2)通常,PHP中的垃圾回收机制,仅仅在循环回收算法确实运行时会有时间消耗上的增加。但是在平常的(更小的)脚本中应根本就没有性能影响。
这种好处在长时间运行脚本中尤其明显,诸如长时间的测试套件或者daemon脚本此类。同时,对通常比Web脚本运行时间长的» PHP-GTK应用程序,新的垃圾回收机制,应该会大大改变一直以来认为内存泄漏问题难以解决的看法。 - 与垃圾回收算法相关的PHP配置
可以通过修改php.ini中的zend.enable_gc来打开或关闭PHP的垃圾回收机制,也可以通过调用gc_enable()或gc_disable()打开或关闭PHP的垃圾回收机制。在PHP5.3中即使关闭了垃圾回收机制,PHP仍然会记录可能根到根缓冲区,只是当根缓冲区满额时,PHP不会自动运行垃圾回收,当然,任何时候您都可以通过手工调用gc_collect_cycles()函数强制执行内存回收。 - 回收周期:当达到一定阀值,并开启了垃圾回收机制才会进行垃圾回收
阅读全文
0 0
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- get和post
- 这个暑假的展望
- 2017/06/15 榕基面试题
- 见习报告
- Python常用软件安装
- 欢迎使用CSDN-markdown编辑器
- Android切换Fragment时视频依旧在播放,没有正常的停止。
- 端午节踩楼中奖特此留恋
- 学习日记//harshtable
- java多线程:ExecutorService多线程实例(六)
- 腾讯2017暑期实习生编程题(三)----有趣的数字
- springmvc的工作流程
- AKOJ -- 1529 -- 寻找最大数
- Arduino 编程技巧 睡眠模式的运用 2个AA电池运行一年的秘密(未完待续)