• 技术文章 >后端开发 >PHP问题

    PHP中Copy on write是什么意思?

    coldplay.xixicoldplay.xixi2020-07-01 16:17:19原创156

    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中文网其它相关文章!

    本文原创发布php中文网,转载请注明出处,感谢您的尊重!
    专题推荐:PHP Copy on write
    上一篇:PHP数组的底层实现原理是什么? 下一篇:如何解决PHP内存溢出问题?
    第12期线上培训班

    相关文章推荐

    • PHP中copy on write写时复制机制介绍_PHP教程• PHP中的写时复制(Copy On Write)的代码实例分享• PHP写时复制(Copy On Write)

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网