PHP中Copy on write是什么意思?

coldplay.xixi
coldplay.xixi 原创
2023-03-01 20:10:01 2577浏览

PHP中Copy on write的意思是在用变量对变量进行赋值时,这些相同值的变量指向同一块内存,只有当这些指向同一块内存的相同值,和变量中的某一个变量的值发生改变的时候,才需要进行变量分离。

PHP中Copy on write的意思是:

写时复制(Copy-on-Write,也缩写为COW),顾名思义,就是在写入时才真正复制一份内存进行修改。 COW最早应用在*nix系统中对线程与内存使用的优化,后面广泛的被使用在各种编程语言中,如C++的STL等。

在PHP内核中,COW也是主要的内存优化手段。 在前面关于变量和内存的讨论中,引用计数对变量的销毁与回收中起着至关重要的标识作用。 引用计数存在的意义,就是为了使得COW可以正常运作,从而实现对内存的优化使用。

写时复制优点:

是通过赋值的方式赋值给变量时不会申请新内存来存放新变量所保存的值,而是简单的通过一个计数器来共用内存,只有在其中的一个引用指向变量的值发生变化时才申请新空间来保存值内容以减少对内存的占用。

从PHP底层基础数据结构来看

ref_count和is_ref是定义于zval结构体中;

is_ref标识是不是用户使用 & 的强制引用;

ref_count是引用计数,用于标识此zval被多少个变量引用,即写时复制的自动引用,为0时会被销毁。

相关学习推荐:PHP编程从入门到精通

以上就是PHP中Copy on write是什么意思?的详细内容,更多请关注php中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。