对于Mac和Linux,fork的内存处理有区别吗?

时间:2018-02-15 12:12:58

标签: linux macos subprocess fork

我一直在使用Python的子进程模块使用subprocess.Popen运行某些进程。我在Mac OS上开发了代码,但现在我在Linux服务器上运行它。在使用我的父子进程的resource.getrusage(RUSAGE_SELF).ru_maxrss进行内存分析之后,我发现内存分配机制在两个平台上完全不同。

我已经研究过在Mac和Linux下fork的行为差异,但是没有提到这样的事情。

我正在运行这样的循环:

for t in range(1000):
   pid = subprocess.Popen([EXECUTABLES, FILNAME])
   # execute some commands here
   pid.terminate()
   pid.wait()

在Mac上:

  1. 子进程具有常量RSS
  2. 父进程增加了RSS
  3. 在Linux上:

    1. 子进程的RSS =父进程的RSS
    2. 父进程的RSS正在急剧增加
    3. 使儿童过程急剧增加

0 个答案:

没有答案