c++ - 使用 40 个不同的 'identities' Vs 运行相同的程序。运行程序的 40 个实例。优点和缺点?

标签 c++ linux unix fork multiple-instances

我们在这里面临着一个需要我们知道的特定程序设计决策-

  1. 是否以及是否存在性能方面的差异

    一个。运行一个程序的多个(比如,n=40)实例(比如,n=40);并且,

    更改程序的源代码仅足以更改它的名称(例如,程序名为 XXXXX,我们更改源代码并重新编译并安装 XXXX1,XXXX2,XXXX3 .... 直到 XXXX40)并运行一次全部。

  2. 如果是,这些区别是什么?

最佳答案

一个区别是,如果您多次运行完全相同的二进制文件,操作系统将只需要将一个拷贝加载到内存中,并且每个正在运行的实例将共享只读部分(代码、资源等)。由于 Copy on Write,即使是可写的部分也会共享,直到它们被实际写入为止.

如果你制作一堆不同的二进制文件,每个文件都必须单独加载到内存中。这将增加内存使用量和进程启动时间。

这些影响是否严重到需要担心将取决于您的具体情况。

关于c++ - 使用 40 个不同的 'identities' Vs 运行相同的程序。运行程序的 40 个实例。优点和缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26366008/

相关文章:

linux - Unix/Linux/Solaris : Shell script to read log files present in multiple locations on a single run

c++ - 在着色器中从 glOrtho 切换到 MVP 矩阵后没有绘制任何东西

c++ - 计算多个 std::bitset<N> 中出现 1 的最快方法?

unix - 如何将两个 Vim 命令合二为一(命令不是键绑定(bind))

linux - Linux 服务器上的 Tomcat 未在端口 80 上运行

linux - 在linux中的行与行之间插入行,其中该行包含特殊字符

windows - Windows 上的 Unix 风格的工具?

c++ - 如何明确让用户知道模板参数的要求?

java - CORBA 客户端/服务器应用程序,从服务器获取信息(空值)

linux - 磁盘上的 centos 可用空间未更新