我正在尝试开发一个小型测试应用程序,它在Windows任务管理器中运行几个命令,每X秒测量一次cpu使用率、内存使用率和网络使用率。该应用程序将用java编写,并被认为可以在windows和linux上运行。我发现很多人使用Sigar API是为了方便地提取系统信息。我了解了如何使用它来提取内存使用情况
Mem mem = sigar.getMem();
mem.getUsed();
我仍然不确定使用的内存和实际使用的内存之间有什么区别,有人能详细说明一下吗?
此外,我仍然不确定如何提取Cpu使用率和网络使用率。对于Cpu,我尝试过:
cpu = sigar.getCpuPerc();
c
我知道如何获取进程的CPU使用率和内存使用率,但我想知道如何获取每个线程级别的CPU使用率和内存使用率。如果最好的解决方案是做一些P-Invoking,那么也没问题。
我需要的示例:
Thread myThread = Thread.CurrentThread;
// some time later in some other function...
Console.WriteLine(GetThreadSpecificCpuUsage(myThread));