想得到针对每一个进程的占CPU的百分比,但是用getpercent()这个打印出来老是0.0。上网搜了好久也没有搜到用java写的得到单个进程占CPU百分比的例子。第一次接触这些东西所以懂得不多,求帮助T_T……最后再次谢谢!还有如果有数据了值也对不上。sleep有加,但也是没多大效果。

Sigar sigar = new Sigar();

long pid = sigar.getPid();

int sleep_time = 100;

SigarProxy sigars = SigarProxyCache.newInstance(sigar, sleep_time);

ProcCpu cpuu;

try {

ProcCpu cpu = sigars.getProcCpu(pid);

cpu.getPercent();   //it return 0.0 first

Thread.sleep(sleep_time);

cpuu = sigar.getProcCpu(pid);

System.out.println(cpuu.getPercent());

} catch (Exception e) {

e.printStackTrace();

}

20分

public static void main(String[] args) throws SigarException {

final Random rand = new Random();

new Thread() {

public void run() {

while(true) {

if(rand.nextBoolean()) {

for (int i = 0, l = 10000000; i

rand.nextDouble();

}

} else {

try {

Thread.sleep(1000L);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}

}.start();

NumberFormat format = new DecimalFormat("0");

Sigar sigar = new Sigar();

long pid = sigar.getPid(); //javaw的pid 或者注释掉上边的Thread,在资源管理器看pid

int availableProcessors = Runtime.getRuntime().availableProcessors();

while (true) {

System.out.println(format.format(sigar.getProcCpu(pid).getPercent() / availableProcessors * 100) + ""%"");

try {

Thread.sleep(1000L);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

引用 1 楼 chenjing0320 的回复:

public static void main(String[] args) throws SigarException {

final Random rand = new Random();

new Thread() {

public void run() {

while(true) {

if(rand.nextBoolean()) {

for (int i = 0, l = 10000000; i

rand.nextDouble();

}

} else {

try {

Thread.sleep(1000L);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}

}.start();

NumberFormat format = new DecimalFormat("0");

Sigar sigar = new Sigar();

long pid = sigar.getPid(); //javaw的pid 或者注释掉上边的Thread,在资源管理器看pid

int availableProcessors = Runtime.getRuntime().availableProcessors();

while (true) {

System.out.println(format.format(sigar.getProcCpu(pid).getPercent() / availableProcessors * 100) + ""%"");

try {

Thread.sleep(1000L);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

你给的方案可行。但是有一个问题请教,就是里面的数据貌似有时候不稳定,有时候CPU使用率会超过100%,比如1000%,请问这是什么原因的导致的?

引用 2 楼 lewis121 的回复:

Quote: 引用 1 楼 chenjing0320 的回复:

public static void main(String[] args) throws SigarException {

final Random rand = new Random();

new Thread() {

public void run() {

while(true) {

if(rand.nextBoolean()) {

for (int i = 0, l = 10000000; i

rand.nextDouble();

}

} else {

try {

Thread.sleep(1000L);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}

}.start();

NumberFormat format = new DecimalFormat("0");

Sigar sigar = new Sigar();

long pid = sigar.getPid(); //javaw的pid 或者注释掉上边的Thread,在资源管理器看pid

int availableProcessors = Runtime.getRuntime().availableProcessors();

while (true) {

System.out.println(format.format(sigar.getProcCpu(pid).getPercent() / availableProcessors * 100) + ""%"");

try {

Thread.sleep(1000L);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

你给的方案可行。但是有一个问题请教,就是里面的数据貌似有时候不稳定,有时候CPU使用率会超过100%,比如1000%,请问这是什么原因的导致的?

1000%没遇到过啊,我测的最多就100%

引用 3 楼 chenjing0320 的回复:

Quote: 引用 2 楼 lewis121 的回复:

Quote: 引用 1 楼 chenjing0320 的回复:

public static void main(String[] args) throws SigarException {

final Random rand = new Random();

new Thread() {

public void run() {

while(true) {

if(rand.nextBoolean()) {

for (int i = 0, l = 10000000; i

rand.nextDouble();

}

} else {

try {

Thread.sleep(1000L);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}

}.start();

NumberFormat format = new DecimalFormat("0");

Sigar sigar = new Sigar();

long pid = sigar.getPid(); //javaw的pid 或者注释掉上边的Thread,在资源管理器看pid

int availableProcessors = Runtime.getRuntime().availableProcessors();

while (true) {

System.out.println(format.format(sigar.getProcCpu(pid).getPercent() / availableProcessors * 100) + ""%"");

System.out.println(format.format(sigar.getProcCpu(pid).getPercent() / availableProcessors * 100) + ""%"");//该数据无效,都是0

try {

Thread.sleep(1000L);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

你给的方案可行。但是有一个问题请教,就是里面的数据貌似有时候不稳定,有时候CPU使用率会超过100%,比如1000%,请问这是什么原因的导致的?

1000%没遇到过啊,我测的最多就100%

还有一个问题噢,sigar.getProcCpu(pid).getPercent() ;如果再输出一遍。貌似数据不对,几乎都是0。

java sigar cpu使用率_sigar相关-单个进程占CPU百分比相关推荐

  1. linux 使cpu使用率升高_关于linux系统CPU篇---gt;CPU使用率升高

    1.CPU使用率为单位时间内CPU使用情况的统计,以百分比的方式展示. LINUX作为一个多任务操作系统,将每个CPU的时间划分为很短的时间片,再通过调度器轮流分配给各个任务使用,因此造成多任务同时运 ...

  2. java获取cpu使用率_再一次生产 CPU 高负载排查实践

    前言 前几日早上打开邮箱收到一封监控报警邮件:某某 ip 服务器 CPU 负载较高,请研发尽快排查解决,发送时间正好是凌晨. 其实早在去年我也处理过类似的问题,并记录下来:<一次生产 CPU 1 ...

  3. 查看基于Android 系统单个进程内存 CPU使用情况的几种方法

    首先给大家分享一个巨牛巨牛的人工智能教程,是我无意中发现的.教程不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵段子,像看小说一样,哈哈-我正在学习中,觉得太牛了,所以分享给大家!点这里可以跳转 ...

  4. linux 列出内存/cpu使用率前10的进程

    内存使用率前10行 # ps aux | head -1;ps aux | grep -v PID | sort -rn -k +4 | head CPU使用率前10行 # ps aux | head ...

  5. 单个进程降低cpu占用的方法

    夏日炎炎,使用ffmpeg转换视频时cpu占用全满,温度几乎破百,吓了一跳. 研究降低cpu占用的方法.方法简单,不过使用时要有些小窍门. 在任务管理器中找到进程,在"设置相关性" ...

  6. qt获取cpu使用率_又一次生产 CPU 高负载排查实践

    以下文章来源于crossoverJie ,作者crossoverJie 前言 前几日早上打开邮箱收到一封监控报警邮件:某某 ip 服务器 CPU 负载较高,请研发尽快排查解决,发送时间正好是凌晨. 其 ...

  7. linux中yum进程占cpu百分之九十,在Deepin Linux系统中kworker进程占用CPU达到100%的解决...

    如果你在Deepin Linux.Debian.Ubuntu系统中遇到kworker进程占用CPU达到100%,可以用以下解决方法解决问题,本文主要内容为问题起因.microcode介绍.解决方法及总 ...

  8. android cpu使用率 代码,实现统计 android手机 CPU使用率

    # -*- coding:utf-8 -*- ''' Created on Sep 10, 2018 @author: SaShuangYiBing ''' import subprocess imp ...

  9. oracle 查看cpu使用率,查看Oracle所在服务器的cpu使用情况

    查看Oracle所在服务器的CPU使用情况 --使用Oracle视图查看操作系统监控数据库 select * from v$osstat; select * from v$sysmetric_hist ...

  10. linux命令看cpu使用率,怎么使用Linux命令查看CPU使用率

    本教程分享有关cpu使用图文教程内容,希望对您有用 在Linux系统操作中,有时需要查看cpu的使用率,这就需要用到Linux命令了,Linux查看cpu使用率的命令主要有4个,即top.vmstat ...

最新文章

  1. 匹兹堡大学申请条件计算机科学,匹兹堡大学cs
  2. java 词频_java程序:统计单词词频,
  3. 前端笔记-vue cli使用echarts
  4. 小程序复制指定内容到剪贴板
  5. header+php+xiazai_php通过header方法实现文件下载
  6. 让SecureCRT vi中显示多色彩
  7. Redis实现微博后台业务逻辑系列(八)
  8. cgroup代码浅析(1)
  9. 翱翔云天的SAP技术课程体系
  10. 使用Python批量转换图片格式
  11. Egg中使用DiyUpload实现图片批量上传
  12. 立春----直流电压电流检测模块
  13. android studio中的apk位置
  14. SpringCloud整合Sa-Token登录认证+Gateway网关拦截
  15. unity打开设置虚拟键的界面
  16. 项目经理?项目成员?
  17. 入职4个月后,对于web开发的心得
  18. 航海王热血航线服务器要维修多久,航海王热血航线
  19. Flutter尽然还能有这种操作!隔壁都馋哭了
  20. 计蒜客-A1024 淘宝卖家评价体系

热门文章

  1. Visio 2013打开自动关闭,闪退的解决办法
  2. 自动化运维工具ansible的安装部署(图文详解!)
  3. 远程桌面工具mRemoteNG与Tsmmc
  4. Android 创建Mpaas项目
  5. 开发环境搭建与Hadoop的配置
  6. Java思维导图(七)
  7. opencv:VS无法导入源文件(环境配置不全解决100%有效)
  8. Qi v1.2.4协议 之 定频调压方案
  9. matlab中值滤波实现
  10. word应用2(实用)