2009-10-12 56 views

回答

0

如果通過「控制」你的意思是「限制到一個已知的上限」,那麼你可以簡單地傳遞

-Xms`lower_bound` 

-Xmx`upper_bound` 

到虛擬機的ARGS當你產卵的過程。 see the approproate setting here

+0

問題不是關於JVM堆內存,而是由JVM產生的進程系統內存(單獨進程) – Lambder

2

我假設你正在談論非Java的「進程」使用Runtime.exec(...)

答案人丁是,這是操作系統,標準的Java庫,支持特定的而不是別的。但是,如果你要做到這一點在Linux中(或UNIX),我能想到的三種方法:

  • 了Java通過使用該ulimit內置減少內存限制,然後exec一個殼包裝腳本產卵命令實際的命令;見man 1 ulimit
  • 編寫一個與shell包裝器相同的C命令。這比包裝腳本方法的開銷少。
  • 試着用JNI和本地代碼庫做同樣的事情。不建議這樣做,因爲您可能需要複製ProcessProcessBuilder的行爲,這可能非常困難。
相關問題