垃圾回收机制
垃圾回收机制是一种动态存储分配方案。它会自动释放程序不再需要的已分配的内存块。自动回收内存的过程叫垃圾收集。垃圾回收机制可以让程序员不必过分关心程序内存分配,从而将更多的精力投入到业务逻辑。在现在的流行各种语言当中,垃圾回收机制是新一代语言所共有的特征。
垃圾的产生
PHP7中复杂类型,像字符串、数组、对象等的数据结构中,头部都有一个gc,这个gc的作用就是用来对垃圾回收的支持。当变量赋值、传递时,会增加value的引用数,unset、return等释放变量时再减掉引用数,减掉后如果发现refcount变为0则直接释放value,这是变量的基本回收过程。
不过有一种问题是这个机制无法解决的,就是循环引用的问题。
什么是循环引用呢?简单说就是变量的内部里存的value又引用了变量自身。这种比较经常发生在数组和对象类型的变量上。
这里先讲一下引用,即zend_reference这个类型,这个是PHP7新增的变量类型,当对变量使用“&”操作时,会创建新的中间结构体zend_reference,这个结构体会真正的指向对应的value结构。
学习编程开发成为了大多数人学习IT的第一印象,可是学习什么编程语言就成了很多小白的难题。Java、php、python等等多种编程语言可以选择,哪一种适合自己呢?合肥PHP培训浅显易懂,紧密结合企业的实际需求。选择PHP培训班,欢迎选择达内php培训班免费试听。
*版权声明:转载文章和图片均来自公开网络,版权归作者本人所有,推送文章除非无法确认,我们都会注明作者和来源。如果出处有误或侵犯到原作者权益,请与我们联系删除或授权事宜。
填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费!怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!