gpt4 book ai didi

shared-libraries - 可执行文件的多个实例(使用静态库构建)是否会共享 RAM 上的任何内容

转载 作者:行者123 更新时间:2023-12-04 07:24:17 25 4
gpt4 key购买 nike

假设一个可执行的 foo.exe 是基于静态库构建的,并且该 foo.exe 的 6 个实例同时在一台机器上运行。
由于除了 RAM 上的读写部分之外,所有代码都相同(只读部分),因此 RAM 中的这 6 个实例之间是否有任何共享以提高性能?

我确实知道如果上面的 foo.exe 使用共享库,即使有 6 个实例运行,这些共享库的只有 1 个实例将在 RAM 中。

最佳答案

这取决于操作系统。

对于 Linux 和 Solaris,所有实例肯定会共享保存代码(或正确调用的文本)的内存页。

它们还可以共享源自可​​执行文件的数据页(即全局和静态数据)。发生的情况是这些页面是通过一种名为 copy-on-write 的技术共享的。或牛。只要实例不修改数据页,它们就会被共享。但是一旦一个实例修改了一个数据页,它就会得到它自己的副本。

我猜现代版本的 Windows 会做同样的事情,但我不确定。

关于shared-libraries - 可执行文件的多个实例(使用静态库构建)是否会共享 RAM 上的任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2032779/

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