POSIX_SPAWN с Java? - PullRequest
       7

POSIX_SPAWN с Java?

3 голосов
/ 25 июня 2010

ProcessBuilder.start и Runtime.exec, похоже, используют fork () в системе * NIX, которая, похоже, выделяет дочернему процессу столько же памяти, сколько родительскому процессу (см., Например, этот вопрос ). Это может быть болезненно, если вы хотите запустить процесс, который почти не требует памяти, от процесса, который использует много памяти.

Есть ли способ запустить процессы с использованием POSIX_SPAWN - который не выполняет это распределение памяти? Единственный способ, которым я знаю, - это использовать Tanuki , но, оказывается, он не идеален для меня.

Ответы [ 2 ]

1 голос
/ 16 октября 2013

Используйте библиотеку NuProcess .Он использует VFORK в Linux, который сначала не копирует пространство процесса, тем самым устраняя частые ошибки OOM при разветвлении процессов из процесса Java с большой кучей.

1 голос
/ 12 сентября 2011

Вот проект с открытым исходным кодом, который реализует posix_spawn

https://github.com/axiak/java_posix_spawn

...