本文介绍了C++中的Copy On Write技术,它利用引用计数来优化性能,避免不必要的内存复制。当多个对象共享内存时,只有在尝试修改时才会真正复制内存。通过对几种方案的探讨和代码解析,详细阐述了如何实现和优化写时拷贝。
摘要由CSDN通过智能技术生成
Copy On Write
Copy On Write(写时复制)使用了“引用计数”(reference counting),会有一个变量用于保存引用的数量。当第一个类构造时,string的构造函数会根据传入的参数从堆上分配内存,当有其它类需要这块内存时,这个计数为自动累加,当有类析构时,这个计数会减一,直到最后一个类析构时,此时的引用计数为1或是0。此时,程序才会真正的Free这块从堆上分配的内存。