我正在编写一个创建JVM的应用程序,需要控制JVM生成的进程的内存使用情况。
答案 0 :(得分:2)
您可以使用JMX连接到JVM进程以获取有关内存状态/分配的信息,还可以激发垃圾回收。但您首先需要启用JVM的JMX监视:http://java.sun.com/j2se/1.5.0/docs/guide/management/agent.html。
答案 1 :(得分:2)
我假设你在谈论使用Runtime.exec(...)
等产生的非Java“进程”。
答案是这是特定于操作系统的,而不是标准Java库支持的内容。但如果您打算在Linux(或UNIX)中执行此操作,我可以考虑三种方法:
ulimit
来减少内存限制,然后exec
实际命令;见man 1 ulimit
。Process
和ProcessBuilder
的行为,这可能非常困难。答案 2 :(得分:0)
如果通过'control'表示'限制为已知的上限',则可以简单地传递
-Xms`lower_bound`
和
-Xmx`upper_bound`
当你产生进程时,到vm的args。 see the approproate setting here