微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – Windows上的Java需要记录CPU负载和类似的OS特定性能信息

Windows机器上运行的Java库需要记录有关操作系统的信息,如cpu负载,JVM等占用的内存,我非常肯定Java本身无法获取,因为它是特定于操作系统的.

此库的日志中需要此信息,以便向客户端指出某些操作失败,因为库无法获取足够的资源.

不可能选择JVM,即我们不能要求我们的客户端应该使用实现Windows操作系统特定功能的特定JVM.

是否有可以通过JNI使用的Windows库(DLL)或API?

我们也可以在C或C#中实现DLL,我需要在哪里查看如何才能最有效地完成这项工作?

编辑:我需要访问有关JVM本身进程的数据,我猜这只能通过本机Windows API获取.所以我想我必须实现一个小的C程序并通过JNI将其作为本机DLL链接.有什么提示吗?

解决方法:

对于内存部分,请查看Runtime的几种与内存相关的方法.
获取占用的内存,请尝试以下操作:

Runtime runtime = Runtime.getRuntime();
System.out.println(runtime.totalMemory() - runtime.freeMemory());

我还没有尝试过这个,但是对于cpu负载,请看一下following.
getSystemloadAverage()方法应该这样做.

希望这可以帮助!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐