写时拷贝
来源:互联网 发布:淘宝披露函模板 编辑:程序博客网 时间:2024/05/29 02:46
写时拷贝
写时拷贝是浅拷贝解决浅拷贝析构冲突的一种解决方案,写时拷贝也叫延时拷贝,几个对象共用一块空间,当执行读操作时不会有影响,当你需要进行写操作改变一个对象的内容时,空间的值不能被修改,会互相影响,那么就需要单独开辟一块空间将对象拷贝过去然后改,不改变就不需要开辟。
写时浅拷贝与深拷贝比较的优点:占用空间少(相同内容不开辟新空间),复制效率高
写时拷贝有两种方案
1.写时拷贝(引用计数),一个对象第一次开辟空间存放字符串,再开辟一块新的空间存放引用计数。当它拷贝构造其他对象时,让其他对象的引用计数也都指向存放引用计数的同一块空间,引用计数加一。
缺陷:(1)每次new两块空间,创建多个对象的时候效率较低;
(2)它多次分配小块空间,容易造成内存碎片化,导致分配不出来大块内存。
2.优化即第二种方案写时拷贝(指针),仿照new的底层实现,开辟一块空间,在其头四个字节计数,其思想就是在构造对象的时候多开辟四个字节用来存医用技术,这样就不需要变量了,要用引用计数的时候只需要把它取出来就可以了。
阅读全文
0 0
- 深拷贝&浅拷贝&写时拷贝
- 写时拷贝技术
- linux 写时拷贝
- fork写时拷贝
- 写时拷贝
- c++ 写时拷贝
- 写时拷贝
- C++ 写时拷贝
- 写时拷贝
- 写时拷贝
- C++ 写时拷贝
- 写时拷贝
- 写时拷贝
- C++写时拷贝
- 写时拷贝
- c++写时拷贝
- 写时拷贝
- 写时拷贝
- C#事件(event)解析
- 初识selenium
- 不用if,for等关键字计算1+2+...+n的结果
- 非预定义的异常处理
- Winform中处理Form响应方向键方法
- 写时拷贝
- 关于Servlet中乱码问题
- A
- 学生信息管理系统总结
- text/javascript和application/json的区别
- 凯罗兰乳胶制品网项目简介
- Several ports (8005, 8080, 8009)杀进程
- jquery设置单选框radio选中的方法
- 使用Docker搭建Django,Nginx,R,Python部署环境