是否有可能以编程方式确定JVM的资源限制?我试图确定特定进程消耗的可用资源的百分比。我知道有很多工具,比如jconsole,但我需要在代码中执行此操作,而且我没有遇到任何要做的事情。从其他读取可用线程的数量将由硬件确定,应用程序不起诉固定的线程池。然后我将使用ThreadMXBean来确定特定进程使用的线程数,并根据此计算百分比。
Runtime runtime = Runtime.getRuntime();
long maxMemory = runtime.maxMemory();
long mTotalMemory = runtime.totalMemory();
long freeMemory = runtime.freeMemory();
int mAvailableProcessors = runtime.availableProcessors();
long mTotalFreeMemory = freeMemory + (maxMemory - mTotalMemory);