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()方法应该这样做.

希望这可以帮助!

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...