POSIX_使用Java生成?

POSIX_使用Java生成?,java,posix,spawn,Java,Posix,Spawn,ProcessBuilder.start和Runtime.exec似乎在*NIX系统上使用了fork(),这似乎为子进程分配了与父进程相同的内存量(参见。 )。如果要从使用大量内存的进程启动一个几乎不需要内存的进程,这可能会很痛苦 是否有任何方法可以使用POSIX_SPAWN启动进程?POSIX_SPAWN不进行内存分配?我所知道的唯一方法是使用,但对我来说并不理想。这里有一个实现posix_spawn的开源项目 使用该库。它在Linux上使用vWork,它不首先复制进程空间,从而消除了从具有大

ProcessBuilder.start和Runtime.exec似乎在*NIX系统上使用了fork(),这似乎为子进程分配了与父进程相同的内存量(参见。 )。如果要从使用大量内存的进程启动一个几乎不需要内存的进程,这可能会很痛苦


是否有任何方法可以使用POSIX_SPAWN启动进程?POSIX_SPAWN不进行内存分配?我所知道的唯一方法是使用,但对我来说并不理想。

这里有一个实现posix_spawn的开源项目


使用该库。它在Linux上使用vWork,它不首先复制进程空间,从而消除了从具有大堆的java进程分叉进程时经常出现的OOM错误。

想详细说明一下“结果并不理想”?我使用的是Tanuki的早期版本,该版本不支持该功能,出于稳定性原因,无法升级我的依赖关系。另外,使用java.lang.Process而不是WrapperProcess或诸如此类的东西也不错。我记得分叉进程看起来使用的内存量与父进程相同(在linux/unix上的进程列表中),但实际上它们都共享内存。你可以根据经验来测试这个问题——它是否会耗尽你的机器内存,或者查找ps工具的详细信息(假设你正在使用它)。我也有同样的问题,希望得到一个便宜/简单的答案。任何人