PHP垃圾回收机制博文分析

我为什么要做博文分析?

因为要增强记忆,别人的知识转化为自己的知识点,理清逻辑思路。

 

 

1. 标题:一看就懂系列之 由浅入深聊一聊php的垃圾回收机制

    评价:博主(咖啡色的羊驼)经常写博客、有实操xdebug_debug_zval()、实操步骤也比较清晰、引用PHP官方配图、理解有一定难度,需要仔细阅读。

    博文思路:内存计数-->2内存变化实操(refcount\is_ref)-->3老版本内存溢出-->4新版本垃圾判断处理过程(refcount-1=0可能是垃圾)-->5算法优化配置

    重点内容:refcount、is_ref(标记是否存在引用)、memory_get_usage()、php.ini中设置 zend.enable_gc

2. 标题:PHP垃圾回收深入理解

目录:PHP变量及关联内存对象的内部表示、PHP5.2中的垃圾回收算法——Reference Counting、PHP5.3中的垃圾回收算法、PHP5.2与PHP5.3垃圾回收算法的性能比较、与垃圾回收算法相关的PHP配置

思路:

引用:PHP: 性能方面考虑的因素 - Manual

评论避免内存泄漏的几种方案:

1. 写高质量代码,减少内存泄漏的可能

2.根据PHP生命周期回收,让系统自动回收内存(对于非常驻行程序有效,RINIT ,RSHOTDOWN)

3.手动回收,即重启服务器nginx或apache (MINIT ,MSHOTDOWN)

4.调高php.ini配置文件: php.ini memory_limit = 128M(不推荐)

3.标题:php7 垃圾回收机制

   亮点:php变量在底层的实现;“孤儿”->循环引用/野指针,原理,模拟减,array和object的测试代码

4. 标题:PHP垃圾回收机制详解

    亮点:提到了不同变量类型,计数是否会变。php7的变化,配图1比较好。下面的测试code(数组引用)好像有问题

 

如果要动手测试

开启xdebug,并测试

phpstudy2018 安装xdebug扩展

PHPstorm如何使用xdebug断点调试代码??

Sublime text3配置xdebug调试记录

 

你可能感兴趣的:(PHP语言)