是否有Java库(.jar)文件我可以下载并使用API来跟踪程序的堆大小?如果没有,我将如何创建一个?
答案 0 :(得分:1)
您可以使用Runtime
类:
当前堆大小(它可以增长直到达到允许的最大值):
long hSize = Runtime.getRuntime().totalMemory();
最大堆大小:
long hMaxSize = Runtime.getRuntime().maxMemory();
当前堆大小有多少是免费的:
long hFreeSize = Runtime.getRuntime().freeMemory();
答案 1 :(得分:0)
当然,您甚至不需要下载:(oracle)JDK捆绑了一个名为 jvisualvm 的程序,这符合您的要求:您可以(附加到正在运行的程序)并跟踪其堆大小(以及更多指标)。有关详细信息,请参阅:https://docs.oracle.com/javase/8/docs/technotes/tools/windows/jvisualvm.html
当然,有许多(可下载,免费和商业)替代品,有些是: