当前位置:  编程技术>php

PHP中copy on write写时复制机制介绍

    来源: 互联网  发布时间:2014-08-26

    本文导语:  什么是写时复制(Copy On Write)? 答:在复制一个对象的时候并不是真正的把原先的对象复制到内存的另外一个位置上,而是在新对象的内存映射表中设置一个指针,指向源对象的位置,并把那块内存的Copy-On-Write位设置为1.这...

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

答:在复制一个对象的时候并不是真正的把原先的对象复制到内存的另外一个位置上,而是在新对象的内存映射表中设置一个指针,指向源对象的位置,并把那块内存的Copy-On-Write位设置为1.这样,在对新的对象执行读操作的时候,内存数据不发生任何变动,直接执行读操作;而在对新的对象执行写操作时,将真正的对象复制到新的内存地址中,并修改新对象的内存映射表指向这个新的位置,并在新的内存位置上执行写操作。

这个技术需要跟虚拟内存和分页同时使用,好处就是在执行复制操作时因为不是真正的内存复制,而只是建立了一个指针,因而大大提高效率。但这不是一直成立的,如果在复制新对象之后,大部分对象都还需要继续进行写操作会产生大量的分页错误,得不偿失。所以COW高效的情况只是在复制新对象之后,在一小部分的内存分页上进行写操作。

在PHP 内核中同样使用了写时复制机制来避免在赋值时导致内存增加,比如我们在使用foreach循环体时,可以发现其中的奥秘,示例代码:

代码如下:

$m1 = memory_get_usage();
$str=

    
 
 

您可能感兴趣的文章:

  • PHP 之 写时复制介绍(Copy On Write)
  • php session机制详解(生成机制、回收机制与存储机制)
  • php中Session的生成机制、回收机制和存储机制探究
  • php反射机制获取php类的所有方法
  • php垃圾回收机制解析
  • 简单的php缓存类分享 php缓存机制
  • php析构函数与垃圾回收机制
  • php中session过期时间设置及session回收机制介绍
  • PHP中的插件机制原理和实例
  • php自动加载autoload机制实例分析
  • php递归函数执行机制实例分享
  • php自动加载autoload机制示例分享
  • PHP缓存机制Output Control详解
  • PHP中的reflection反射机制测试例子
  • 实例介绍PHP的Reflection反射机制
  • PHP Session机制简介及用法
  • php autoload机制用法解析
  • windows的文件系统机制引发的PHP路径爆破问题分析
  • PHP OPP机制和模式简介(抽象类、接口和契约式编程)
  • Session的工作机制详解和安全性问题(PHP实例讲解)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • PHP介绍及学习网站推荐
  • php将html特殊字符转换成html字符串的函数:htmlspecialchars()介绍及代码举例 iis7站长之家
  • php session_id()函数介绍及代码实例
  • 设置php页面编码的两种方法示例介绍
  • php中检测变量是否是一个对象的is_object函数介绍及用法举例
  • PHP include任意文件或URL介绍
  • php中session_id()函数详细介绍,会话id生成过程及session id长度
  • PHP COOKIE及时生效的方法介绍
  • php会话(session)生命周期概念介绍及设置更改和回收
  • php pdo mysql query用法介绍
  • php将html特殊字符转换成html字符串的函数:htmlspecialchars()介绍及代码举例
  • php中的路径问题与set_include_path使用介绍
  • PHP编程语言介绍及安装测试方法
  • PHP字符串的递增和递减示例介绍
  • php 5.5.14数据对象(PDO)介绍及PDO的预定义常量介绍
  • PHP函数eval()介绍和使用示例
  • php session 原理详解,用法介绍以及如何设置过期时间
  • PHP eval函数使用介绍
  • Apache HTTP Server(httpd)下载安装以及如何配置java(tomcat)和php详细介绍
  • PHP fopen()和 file_get_contents()应用与差异介绍
  • php时间格式化函数date介绍及用法参考
  • PHP ini_set的用法介绍
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • IIS7配置PHP图解(IIS7+PHP_5.2.17/PHP_5.3.5)
  • PHP 5.4.19 和 PHP 5.5.3 发布及下载地址
  • php输入流php://input使用示例(php发送图片流到服务器)
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • PHP转换器 HipHop for PHP
  • PHP去除html标签,php标记及css样式代码参考
  • PHP 框架 Pop php
  • PHP 'ext/soap/php_xml.c'不完整修复存在多个任意文件泄露漏洞




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3