我的问题也许是一个措辞不佳的问题,源于我对内存管理的业余理解。
我担心的是:我有一个 Perl 脚本,它会分叉很多次。正如我从 perldoc 中的 fork 页面所了解的那样,正在实施写时复制。然后每个孩子调用system()
,再次分叉,调用外部程序。来自外部程序的数据被读回子程序,并作为可存储文件转储,以便在所有子程序退出后由父程序获取和处理。
我担心的是我对这种情况的感知波动。考虑一下我在脑海中看到的最坏情况:对于每个孩子,只要有新数据到达,整个写时复制内存就会被复制。如果是这种情况,我将在创建几个分叉后很快遇到内存问题。
但或者,写时复制是否只复制包含所需数据的最小内存块?那么这个内存量是什么?它的尺寸是如何设置的?
我不确定我所要求的具体内容是依赖于语言还是依赖于某些较低级别的过程。