当前位置: 首页 > news >正文

哪些网站是由wordpress做的软文营销的作用

哪些网站是由wordpress做的,软文营销的作用,施工合同电子版,手机网站怎么建设写时复制技术(Copy on Write)是比较常用的一种技术,它的主要目的是延迟减少以及延迟内存的分配,增加执行效率,只有在真正进行写操作的过程中才会真正分配物理资源。同时,也可以保护数据在系统崩溃时出现的丢失。比如,我…

        写时复制技术(Copy on Write)是比较常用的一种技术,它的主要目的是延迟减少以及延迟内存的分配,增加执行效率,只有在真正进行写操作的过程中才会真正分配物理资源。同时,也可以保护数据在系统崩溃时出现的丢失。比如,我们在进行文件修改时,文件系统会首先将待修改数据放到另外一个位置,然后进行操作。

        看下维基百科的定义:

        

写入时复制是一种计算机程序设计领域的优化策略。其核心思想是,如果有多个调用者同时请求相同资源(如内存或磁盘上的数据存储),他们会共同获取相同的指针指向相同的资源,直到某个调用者试图修改资源的内容时,系统才会真正复制一份专用副本给该调用者,而其他调用者所见到的最初的资源仍然保持不变。这过程对其他的调用者都是透明的。此作法主要的优点是如果调用者没有修改该资源,就不会有副本被建立,因此多个调用者只是读取操作时可以共享同一份资源。

本文简单介绍其在操作系统以及编程语言中的实际使用情况。

1、Linux操作系统

        在linux系统中,当我们要fork子进程的时侯,就会采用COW的思想。即for一个子进程时侯,并不是直接再重新分配一段物理内存给子进程,而是子进程和父进程共用一段物理内存空间,此时父进程和子进程都是只读内存。若子进程或者父进程要进程写操作,再为其分配新的物理内存。

具体原理是:

        fork()之后,kernel把父进程中所有的内存页的权限都设为read-only,然后子进程的地址空间指向父进程。当父子进程都只读内存时,相安无事。当其中某个进程写内存时,CPU硬件检测到内存页是read-only的,于是触发页异常中断(page-fault),陷入kernel的一个中断例程。中断例程中,kernel就会把触发的异常的页复制一份 ,于是父子进程各自持有独立的一份。

        linux另外一个要介绍的是在RCU中的应用。

        RCU,全称时Read-copy-update,是在linux2.6中引入的。当只是读时,不需要加锁;当进行写操作时,会拷贝一份副本,然后在合适的时候会将执行旧数据的指针更新为执行新数据。

        相比于读写锁,RCU最大的变化是进行写操作时,读锁不需要被阻塞。此外,就是其修改对于其他任务来说可能不是立即可见的,有滞后性。因此对于数据具有敏感性,需要实时读到最新的场景,RCU是不合适的。另外,RCU由于需要进行副本拷贝,还要进行删除旧数据等一系列操作,所以其写锁的开销成本较大。因此,RCU在写操作越少的情况,其性能就越好。

2、PHP

        PHP 在管理内存方面有一个机制叫写时复制(COW,Copy On Write),保证了变量间复制值不浪费内存:当一个变量的值复制到另一个变量时,PHP 没有为复制值使用更多的内存,相反,它会更新符号表来说明两个变量拥有相同的内存块,所以当执行下面的代码时并没有创建一个新的数组。只有在对应的引用指向的变量值发生变化时才会申请新空间。

3、Java

        Java中有几种支持CopyOnWrite的容器,CopyOnWriteArrayList和CopyOnWriteArraySet.其主要用于并发的场景,是线程安全的,但性能一般,因为在添加元素时,会复制一个array,并加锁向其加入元素。下面是添加元素的源码:

public boolean add(E e) {final ReentrantLock lock = this.lock;lock.lock();try {Object[] elements = getArray();int len = elements.length;//复制一个新数组Object[] newElements = Arrays.copyOf(elements, len + 1);newElements[len] = e;setArray(newElements);return true;} finally {lock.unlock();}
}

        也就是说,上面的容器还是比较适合读多写少的场景。因为写时复制的过程中会同时占用量份内存,可能会频繁引起Java虚拟机的GC操作。此外,它只能满足最终一致性,并不能保证实时的一致性。相反,Java的读写锁中,读写是完全互斥的,能实现强一致性。

4、Redis的Copy On write

        当我们使用BGSAVE命令进行持久化的时候,充分利用了Linux的写时复制机制。bgsave执行时,redis会fork出一个子进程,子进程和父进程共用一份内存,当只有读时,互不影响。

        如果此时主进程有被修改的数据,则被修改的数据对应的页才会进行复制,随后会被子进程写入到RDB文件中。

http://www.mmbaike.com/news/79219.html

相关文章:

  • 国外购买域名的网站公司市场营销策划方案
  • 国内炫酷的网站首页游戏优化是什么意思?
  • php网站支付宝接口常州seo外包
  • 企业如何在工商网站上做公示拉新推广平台
  • 济南网站关键词优化公司百度网址大全免费下载
  • wordpress 速度太慢seo网站排名优化工具
  • 做网站的技术支持网站推广的具体方案
  • 甘肃网站怎样备案seo关键词优化培训班
  • 阿里云wordpress安装目录seo站群优化技术
  • 网站建设编程怎么写seo自媒体培训
  • 免费申请邮箱163seo型网站
  • 沧州新华区疫情最新情况长沙关键词优化公司电话
  • 浙江网站制作关于seo的行业岗位有哪些
  • 国内免费无版权图片素材网站房地产网站建设
  • 定制企业网站费用长沙百度推广排名
  • 深圳地铁公司网站东莞网络优化哪家好
  • 河北省城乡住房建设厅网站独立网站
  • wordpress制作培训网站重庆seo排名
  • 哪些是用vue做的网站新公司做网站多少钱
  • 企业网站建设需求文档申请网站怎样申请
  • 南漳网站设计seo策略有哪些
  • 做速卖通要关注的几个网站网络营销师是干什么的
  • 不花钱做推广的网站浙江网站建设营销
  • 网络营销导向企业网站建设seo怎么优化网站排名
  • 桂城网站建设关键词优化简易
  • 做网站字体大小微信推广
  • 网站开发的专业能力新产品推广方案策划
  • 网页链接提取码怎么用seo与sem的区别
  • 泉州做网站开发公司seo高效优化
  • 洛阳建设企业网站有哪些免费推广网站