从C ++监视jvm堆大小

时间:2016-07-24 23:28:19

标签: java c++ jvm java-native-interface

有没有办法以编程方式从C ++获取当前的jvm统计信息,例如加载的类或当前堆大小?我知道有很多工具可以这样做,但我想将其与另一个不时阅读这些统计数据的应用程序集成。

1 个答案:

答案 0 :(得分:0)

您可以查看JVMTIJNI

JVMTI 允许您将本机代理附加到Java应用程序,具有大量低级功能,如堆遍历等。它还包含"垃圾收集开始" &安培; "垃圾收集完成"事件,可以作为起点。

JNI 允许您从本机代码调用Java函数(反之亦然)。我可以想象你可以使用这种技术从ManagementFactory或一些提供所需信息的类似Java类获取信息。 This post包含一个关于如何通过JNI调用静态Java方法的完整示例,这应该是一个很好的起点。