java sigar cpu使用率_sigar相关-单个进程占CPU百分比
想得到针对每一个进程的占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百分比相关推荐
- linux 使cpu使用率升高_关于linux系统CPU篇---gt;CPU使用率升高
1.CPU使用率为单位时间内CPU使用情况的统计,以百分比的方式展示. LINUX作为一个多任务操作系统,将每个CPU的时间划分为很短的时间片,再通过调度器轮流分配给各个任务使用,因此造成多任务同时运 ...
- java获取cpu使用率_再一次生产 CPU 高负载排查实践
前言 前几日早上打开邮箱收到一封监控报警邮件:某某 ip 服务器 CPU 负载较高,请研发尽快排查解决,发送时间正好是凌晨. 其实早在去年我也处理过类似的问题,并记录下来:<一次生产 CPU 1 ...
- 查看基于Android 系统单个进程内存 CPU使用情况的几种方法
首先给大家分享一个巨牛巨牛的人工智能教程,是我无意中发现的.教程不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵段子,像看小说一样,哈哈-我正在学习中,觉得太牛了,所以分享给大家!点这里可以跳转 ...
- linux 列出内存/cpu使用率前10的进程
内存使用率前10行 # ps aux | head -1;ps aux | grep -v PID | sort -rn -k +4 | head CPU使用率前10行 # ps aux | head ...
- 单个进程降低cpu占用的方法
夏日炎炎,使用ffmpeg转换视频时cpu占用全满,温度几乎破百,吓了一跳. 研究降低cpu占用的方法.方法简单,不过使用时要有些小窍门. 在任务管理器中找到进程,在"设置相关性" ...
- qt获取cpu使用率_又一次生产 CPU 高负载排查实践
以下文章来源于crossoverJie ,作者crossoverJie 前言 前几日早上打开邮箱收到一封监控报警邮件:某某 ip 服务器 CPU 负载较高,请研发尽快排查解决,发送时间正好是凌晨. 其 ...
- linux中yum进程占cpu百分之九十,在Deepin Linux系统中kworker进程占用CPU达到100%的解决...
如果你在Deepin Linux.Debian.Ubuntu系统中遇到kworker进程占用CPU达到100%,可以用以下解决方法解决问题,本文主要内容为问题起因.microcode介绍.解决方法及总 ...
- android cpu使用率 代码,实现统计 android手机 CPU使用率
# -*- coding:utf-8 -*- ''' Created on Sep 10, 2018 @author: SaShuangYiBing ''' import subprocess imp ...
- oracle 查看cpu使用率,查看Oracle所在服务器的cpu使用情况
查看Oracle所在服务器的CPU使用情况 --使用Oracle视图查看操作系统监控数据库 select * from v$osstat; select * from v$sysmetric_hist ...
- linux命令看cpu使用率,怎么使用Linux命令查看CPU使用率
本教程分享有关cpu使用图文教程内容,希望对您有用 在Linux系统操作中,有时需要查看cpu的使用率,这就需要用到Linux命令了,Linux查看cpu使用率的命令主要有4个,即top.vmstat ...
最新文章
- 匹兹堡大学申请条件计算机科学,匹兹堡大学cs
- java 词频_java程序:统计单词词频,
- 前端笔记-vue cli使用echarts
- 小程序复制指定内容到剪贴板
- header+php+xiazai_php通过header方法实现文件下载
- 让SecureCRT vi中显示多色彩
- Redis实现微博后台业务逻辑系列(八)
- cgroup代码浅析(1)
- 翱翔云天的SAP技术课程体系
- 使用Python批量转换图片格式
- Egg中使用DiyUpload实现图片批量上传
- 立春----直流电压电流检测模块
- android studio中的apk位置
- SpringCloud整合Sa-Token登录认证+Gateway网关拦截
- unity打开设置虚拟键的界面
- 项目经理?项目成员?
- 入职4个月后,对于web开发的心得
- 航海王热血航线服务器要维修多久,航海王热血航线
- Flutter尽然还能有这种操作!隔壁都馋哭了
- 计蒜客-A1024 淘宝卖家评价体系