PHP的垃圾回收机制(PHP面试理论题) |
您所在的位置:网站首页 › 垃圾回收机制php › PHP的垃圾回收机制(PHP面试理论题) |
目录
一、官方解释
PHP的垃圾回收机制
一、官方解释
引用计数基本知识回收周期 (Collecting Cycles)性能方面考虑的因素
垃圾回收,简称gc。顾名思义,就是废物重利用的意思。如果用过C语言,那么申请内存的方式是malloc或者是calloc,然后你用完这个内存后,一定不要忘了用free函数去释放掉,这就是传说中手动垃圾回收,一般都是扫地神僧用这种方式。 那么,在用的最普遍地最传统的web开发中,php的自动垃圾回收机制是怎样的呢? 这个问题我们先这么想,就是都知道php是C语言实现的,现在把C语言给你放在这里了,然后你想想如何用C语言实现对一个变量的统计以及释放。 PHP进行内存管理的核心算法一共两项:一是引用计数,二是写时拷贝,请理(bei)解(song)。当你声明一个PHP变量的时候,C语言就在底层给你搞了一个叫做zval的struct(结构体);如果你还给这个变量赋值了,比如“hello world”,那么C语言就在底层再给你搞一个叫做zend_value的union(联合体),总体看来就是这样的: 好了,进入代码实战阶段,注意两点: 用的PHP版本是7.1.17(记住!这个很重要!不同版本的PHP有极大可能会出现不相同的结果!我试过6个版本的PHP,三个PHP5版本,三个7版本,其中PHP7版本变化尤其多,但不影响业务代码不会出bug,放心),运行环境是cli。 下面的原理解只针对PHP7,不再说5了。你面试的时候,只需要说5的我不太了解,7的我深入看过一些即可,面试官不会难为你的。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |