Crazy lens

PHP写时复制技术
在PHP 内核中同样使用了写时复制机制来避免在赋值时导致内存增加 什么是写时复制 COW(Copy On Writ...
扫描右侧二维码阅读全文
18
2016/07

PHP写时复制技术

在PHP 内核中同样使用了写时复制机制来避免在赋值时导致内存增加

什么是写时复制 COW(Copy On Write)?

答:在复制一个对象的时候并不是真正的把原先的对象复制到内存的另外一个位置上,而是在新对象的内存映射表中设置一个指针,指向源对象的位置,并把那块内存的Copy-On-Write位设置为1.这样,在对新的对象执行读操作的时候,内存数据不发生任何变动,直接执行读操作;而在对新的对象执行写操作时,将真正的对象复制到新的内存地址中,并修改新对象的内存映射表指向这个新的位置,并在新的内存位置上执行写操作。
这个技术需要跟虚拟内存和分页同时使用,好处就是在执行复制操作时因为不是真正的内存复制,而只是建立了一个指针,因而大大提高效率。但这不是一直成立的,如果在复制新对象之后,大部分对象都还需要继续进行写操作会产生大量的分页错误,得不偿失。所以COW高效的情况只是在复制新对象之后,在一小部分的内存分页上进行写操作。

最后修改:2020 年 04 月 18 日 01 : 15 PM
如果觉得我的文章对你有用,请随意赞赏

发表评论