POSIX_SPAWN与Java?

时间:2010-06-25 03:01:01

标签: java posix spawn

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

有没有办法使用POSIX_SPAWN启动进程 - 它不执行此内存分配?我所知道的唯一方法是使用Tanuki,但事实证明这对我来说并不理想。

2 个答案:

答案 0 :(得分:1)

这是一个实现posix_spawn

的开源项目

https://github.com/axiak/java_posix_spawn

答案 1 :(得分:1)

使用NuProcess库。它在Linux上使用VFORK,它不会首先复制进程空间,从而在从具有大堆的java进程中分离进程时消除了频繁的OOM错误。