188得票9回答
什么是写时复制?

我想知道写时复制是什么以及它的用途。这个术语在Sun JDK教程中被提到了多次。

130得票7回答
C++11中COW std::string实现的合法性

在我理解中,使用COW(写时复制)方式实现符合C++11标准的std::string是不可行的,但最近讨论到这个话题时,我发现自己无法直接支持这种说法。 我想问一下,C++11是否允许使用基于COW的方式实现std::string? 如果不允许,这个限制是否在新标准中明确说明了(在哪里)?...

41得票2回答
Swift是否对所有结构体进行拷贝写操作?

我知道 Swift 会对数组进行写时复制优化,但它会对所有结构体都这样做吗?例如:struct Point { var x:Float = 0 } var p1 = Point() var p2 = p1 //p1 and p2 share the same data under th...

29得票3回答
(string) 'hard-copy' 是如何复制字符串?

PHP使用的是复制-修改系统。 $a = (string) $a;($a已经是字符串)会修改和复制任何内容吗? 特别是,这是我的问题: 参数1是mixed/我想允许传递非字符串并将它们转换为字符串。 但有时这些字符串很大。所以我想省略已经是字符串的参数的复制。 我可以使用版本Foo...

21得票5回答
如何实现写时复制?

我希望在我的自定义C++字符串类中实现写时复制(copy-on-write),不知道该怎么做。 我尝试了一些选项,但它们都非常低效。

20得票1回答
在Windows 7上使用NTFS创建写时复制目录

我有一个包含源代码的目录,我编译它来生成目标文件。我希望能够快速应用补丁并重新构建,以便同时访问旧的和新的目标文件。其中一种方法是:cd old && make xcopy old new cd new && apply diff && make...

18得票2回答
使用shared_ptr的写时复制技术

我有一个简单的cow_ptr,它看起来像这样: template<class T, class Base=std::shared_ptr<T const>> struct cow_ptr:private Base{ using Base::operator*; ...

17得票7回答
在C++中应该使用哪些字符串类?

我们有一个基于C++(MFC)的多线程桌面应用程序。目前开发人员使用的是CString或std::string,可能取决于他们的情绪。因此,我们希望选择单个实现(可能不是这两个)。 MFC的CString基于写时复制(COW)惯用语,有些人会认为这在多线程环境中是不可接受的(可能参考这篇文章...

16得票3回答
函数切片参数与全局变量的性能表现?

我有以下的函数:func checkFiles(path string, excludedPatterns []string) { // ... } 我想知道,既然excludedPatterns从未更改过,那么是否应该通过使变量成为全局变量(而不是每次将其传递给函数)来进行优化,或者...

15得票5回答
调用ToString之后,StringBuilder是否会变成不可变的?

我清楚地记得在.NET早期的日子里,调用StringBuilder的ToString方法会将新字符串对象(要返回的)与StringBuilder使用的内部字符缓冲区连接起来。这样,如果你使用StringBuilder构建一个巨大的字符串,调用ToString方法就不需要复制它。 为了做到这一...