gpt4 book ai didi

ruby - Ruby fork 是否对 COW 友好,如果是如何测试它

转载 作者:数据小太阳 更新时间:2023-10-29 08:10:01 26 4
gpt4 key购买 nike

我读过一些 ruby​​ fork COW 友好的地方好的,这里是 link

但是当我碰巧在谷歌周围搜索更多信息时,我发现 Ruby 不支持 COW(写时复制)

现在我有点困惑 ruby​​ 是否真的支持 COW 功能

我也知道 REERubinius 有一个 COW 友好的 GC 所以REE 和 Rubinius 是否支持 COW 功能

是的,我很想测试它,谁能建议我,如果 ruby​​ 支持 COW 功能,那么如何编写示例代码来测试 COW Ruby 中的概念

谢谢

最佳答案

fork 写时复制是操作系统内核的属性,而不是 Ruby。在大多数类 UNIX 系统上,它是。

例如,在 Linux 上,您可以查看 /proc/pid/smaps 并查找共享了多少堆映射。这是 bash 中的一个 fork 示例:

02020000-023cd000 rw-p 00000000 00:00 0                                  [heap]
Size: 3764 kB
Rss: 3716 kB
Pss: 1282 kB
Shared_Clean: 0 kB
Shared_Dirty: 3652 kB
Private_Clean: 0 kB
Private_Dirty: 64 kB
Referenced: 144 kB
Anonymous: 3716 kB
AnonHugePages: 0 kB
Swap: 0 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB
Locked: 0 kB

因此,在其 3764k 堆中,有 3652k 是共享的。参见 proc.txt获取有关 /proc 中文件的文档。

当然,Ruby 可能有一些东西会导致 COW 页面被复制(例如,它的垃圾收集器可能会写入每个页面),但是您可以通过共享计数变为 0 来看到这一点。

关于ruby - Ruby fork 是否对 COW 友好,如果是如何测试它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10758959/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com