perl – 标记为copy-on-write的所有内存是否在一次更改一个数据后被复制?

前端之家收集整理的这篇文章主要介绍了perl – 标记为copy-on-write的所有内存是否在一次更改一个数据后被复制?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的问题可能是一个措辞不好的问题,源于我对记忆管理的业余理解.

我担心的是:我有一个多次出现的Perl脚本.据我所知,在perldoc的fork页面中,正在实现copy-on-write.然后每个孩子调用system(),再次分叉,调用外部程序.来自外部程序的数据被读回到子项中,并作为可存储文件转储,以便在所有子项退出后由父项处理并处理.

我担心的是我对这种情况的波动性.考虑一下,在我看来,最坏的情况:
    对于每个子节点,一旦新数据到达,整个写时复制存储器就会被复制.如果是这种情况,我会在创建一些分支后快速遇到内存问题.

但另外,copy-on-write是否只复制包含所需数据的最小内存块?那么这个量子的记忆是什么?它的大小如何设定?

我不确定我所询问的细节是否依赖于语言或依赖于某些较低级别的过程.

解决方法

内存以页面形式组织,通常每个4K(这可以设置为不同的值,并且是特定于硬件的,但这是具有标准操作系统的英特尔平台上的标准).当子进程写入写入时复制页面时,它将被复制.

猜你在找的Perl相关文章