返回顶部
首页 > 资讯 > 精选 >java中怎么计算cpu使用率
  • 760
分享到

java中怎么计算cpu使用率

2023-06-17 08:06:52 760人浏览 八月长安
摘要

本篇文章给大家分享的是有关java中怎么计算cpu使用率,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。/proc/stat 文件内容:[root@Shentar ~]

本篇文章给大家分享的是有关java中怎么计算cpu使用率,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

/proc/stat 文件内容:

[root@Shentar ~]# cat /proc/stat cpu  602 0 2164 11445 2294 0 17 0 0 cpu0 306 0 1232 4553 2125 0 15 0 0 cpu1 295 0 932 6891 169 0 1 0 0 intr 7110 269 7 0 1 1 0 5 0 1 0 0 0 91 0 0 106 0 6521 0 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ctxt 38984 btime 1368275792 processes 2713 procs_running 1 procs_blocked 0 [root@Shentar ~]#

***行的数值表示的是CPU总的使用情况,所以我们只要用***行的数字计算就可以了。下表解析***行各数值的含义:

参数 解析(单位:jiffies)

(jiffies是内核中的一个全局变量,用来记录自系统启动一来产生的节拍数,在linux中,一个节拍大致可理解为操作系统进程调度的最小时间片,不同linux内核可能值有不同,通常在1ms到10ms之间)

user (38082) 从系统启动开始累计到当前时刻,处于用户态的运行时间,不包含 nice值为负进程。

nice (627) 从系统启动开始累计到当前时刻,nice值为负的进程所占用的CPU时间

system (27594) 从系统启动开始累计到当前时刻,处于核心态的运行时间

idle (893908) 从系统启动开始累计到当前时刻,除io等待时间以外的其它等待时间iowait (12256) 从系统启动开始累计到当前时刻,IO等待时间(since 2.5.41)

irq (581) 从系统启动开始累计到当前时刻,硬中断时间(since 2.6.0-test4)

softirq (895) 从系统启动开始累计到当前时刻,软中断时间(since 2.6.0-test4)stealstolen(0) which is the time spent in other operating systems when running in a virtualized environment(since 2.6.11)

guest(0) which is the time spent running a virtual  CPU for guest operating systems under the control of the Linux  kernel(since 2.6.24)

结论:总的cpu时间totalCpuTime = user + nice + system + idle + iowait + irq + softirq + stealstolen + guest

计算时,采样两个时间点的数据,对于时间点1,记录总的cpu时间total1,记录空闲时间idle1,对于时间2,同样记录total2和idle2。

菜谱使用率为:cpuusage = 1 – (idle2 – idle1) / (total2 – total1)

注意,如果时间点1和时间点2间隔足够小(小于10ms),则可能出现total2 – total1为0,这样cpu使用率应该为0,而不是采用除法计算。

java代码如下:

CPUUsage.java

package com;  import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException;  public class CPUUsage {     private static final String procPath = File.separator + "proc" + File.separator + "stat";      public static void main(String[] args)     {         CPUTime startTime = new CPUTime();         CPUTime endTime = new CPUTime();          getcpuTime(startTime);         try         {             Thread.sleep(1000);         }         catch (InterruptedException e)         {             e.printStackTrace();         }         getcpuTime(endTime);          double cpuUsage = 0;         long totalTime = endTime.getTotalTime() - startTime.getTotalTime();         if (totalTime == 0)         {             cpuUsage = 0;         }         else         {             cpuUsage = 1 - (((double) (endTime.getIdleTime() - startTime.getIdleTime())) / totalTime);         }          System.out.println("the cpu usage is: " + cpuUsage * 100 + "%");     }      private static void getcpuTime(CPUTime t)     {         BufferedReader fr = null;         try         {             fr = new BufferedReader(new FileReader(new File(procPath)));              String oneLine = null;             while ((oneLine = fr.readLine()) != null)             {                 if (oneLine.startsWith("cpu "))                 {                     String[] vals = oneLine.substring(4).split(" ");                     if (vals.length != 10)                     {                         System.err.println("read an error line string!");                     }                     else                     {                         t.setTotalTime(Long.parseLong(vals[1]) + Long.parseLong(vals[2]) + Long.parseLong(vals[3])                                 + Long.parseLong(vals[4]) + Long.parseLong(vals[5]) + Long.parseLong(vals[6])                                 + Long.parseLong(vals[7]) + Long.parseLong(vals[8]) + Long.parseLong(vals[9]));                         t.setIdleTime(Long.parseLong(vals[4]));                         break;                     }                 }             }         }         catch (NumberFORMatException e)         {             e.printStackTrace();         }         catch (IOException e)         {             e.printStackTrace();         }         finally         {             if (fr != null)             {                 try                 {                     fr.close();                 }                 catch (IOException e)                 {                     e.printStackTrace();                 }             }         }     } }

CPUTime.java

package com;  public class CPUTime {     private long totalTime;     private long idleTime;      public CPUTime()     {         totalTime = 0;         idleTime = 0;     }      public long getTotalTime()     {         return totalTime;     }      public void setTotalTime(long totalTime)     {         this.totalTime = totalTime;     }      public long getIdleTime()     {         return idleTime;     }      public void setIdleTime(long idleTime)     {         this.idleTime = idleTime;     } }

以上就是java中怎么计算cpu使用率,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网精选频道。

--结束END--

本文标题: java中怎么计算cpu使用率

本文链接: https://lsjlt.com/news/287902.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • java中怎么计算cpu使用率
    本篇文章给大家分享的是有关java中怎么计算cpu使用率,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。/proc/stat 文件内容:[root@Shentar ~]...
    99+
    2023-06-17
  • linux怎么计算cpu使用率
    在Linux系统中,可以使用命令行工具来计算CPU的使用率。1. 使用top命令:打开终端,输入top命令,然后按下“1”键,可以显...
    99+
    2023-08-30
    linux
  • Linux中计算特定CPU使用率案例详解
    Linux中计算特定CPU使用率 需求解决方案拓展参考 需求 在Linux中可以通过top指令查看某一进程占用的CPU情况,也可以查看某一个CPU使用率情况(先top指令,然后按数字“1”键即可显示每一...
    99+
    2022-06-02
    linux计算CPU使用率 linux计算特定CPU使用率
  • Java中怎么控制CPU占用率
    Java中怎么控制CPU占用率,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。目的描述:控制CPU占用率CPU占用率:在任务管理器的一个刷新周期内,CPU忙(执行...
    99+
    2023-06-18
  • linux怎么计算内存使用率
    要计算Linux系统的内存使用率,可以使用free命令来获取内存的使用情况。具体步骤如下:1. 打开终端。2. 输入以下命令并按En...
    99+
    2023-08-30
    linux
  • cpu使用率100怎么办
    当CPU使用率达到100%时,表示CPU正在全力运行,无法再处理其他任务。以下是一些可能的解决方法:1. 关闭或退出一些正在运行的程...
    99+
    2023-08-24
    cpu
  • 计算innodb_buffer_pool使用率
    两种方法: 一、通过show status mysql> show status like 'innodb_buffer_pool_pages_da...
    99+
    2024-04-02
  • 计算mysql buffer的命中率及使用率
    MyISAM Key buffer命中率:100 - ( (Key_reads * 100) / Key_read_requests )MyISAM Key buffer的使用率:100 - ( (Key_...
    99+
    2024-04-02
  • 使用Python怎么计算圆周率π
    这篇文章给大家介绍使用Python怎么计算圆周率π,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、圆周率的历史1、中国★ 魏晋时期,刘徽曾用使正多边形的边数逐渐增加去逼近圆周的方法 (即「割圆术」),求得π...
    99+
    2023-06-15
  • 怎么在centos中计算CPU内存
    今天就跟大家聊聊有关怎么在centos中计算CPU内存,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。处理器使用率这里要从/proc/stat中提取四个数据:用户模式(user)、低优...
    99+
    2023-06-10
  • centos怎么查看cpu使用率
    centos中查看cpu使用率的方法:1、打开centos终端;2、在命令行中输入“top”命令查看cpu使用率即可。具体操作步骤:在centos系统桌面中使用快捷键【Ctrl+Alt+T】打开终端命令行模式。在centos终端命令行中输入...
    99+
    2024-04-02
  • windows cpu使用率怎么查看
    要查看Windows CPU使用率,可以按照以下步骤进行操作:1. 打开任务管理器:可以通过按下"Ctrl + Shift + Es...
    99+
    2023-10-10
    windows
  • VBS中怎么利用WMI获取CPU使用率
    本篇文章为大家展示了VBS中怎么利用WMI获取CPU使用率,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。代码如下:On Error Resume Next strComputer = "....
    99+
    2023-06-08
  • 电脑cpu使用率100怎么办
    当电脑的CPU使用率达到100%时,可能会导致电脑运行缓慢甚至出现卡顿情况。以下是一些可能的解决方法:1. 关闭不必要的程序:打开任...
    99+
    2023-08-23
    电脑
  • Linux中怎么使用cpulimit限制进程的cpu使用率
    本篇内容介绍了“Linux中怎么使用cpulimit限制进程的cpu使用率”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!很用 Linux时可...
    99+
    2023-06-13
  • Linux中怎么获取cpu利用率
    今天就跟大家聊聊有关Linux中怎么获取cpu利用率,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、从/proc文件系统获取相关的性能参数cpu使用率: /proc/stat内存使...
    99+
    2023-06-16
  • 计算机中内存使用率多少算正常
    这篇文章将为大家详细讲解有关计算机中内存使用率多少算正常,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。内存使用率的正常情况:拿Win7系统来说吧,如果使用是2G内存的情况下,开机基本就能达到【50%】以上...
    99+
    2023-06-14
  • Windows11中小部件高CPU使用率怎么修复
    本篇内容介绍了“Windows11中小部件高CPU使用率怎么修复”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所...
    99+
    2023-04-19
    windows11
  • PHP中使用Redis实现集成率计算
    随着互联网应用的不断发展,计算机存储和计算能力的提高,应用程序开发也在不断演化和创新。在这个过程中,应用程序要求处理越来越多的数据,设计需要考虑如何有效地存储和处理这些数据,并提高应用程序的性能和可伸缩性。在此背景下,Redis成为了一款备...
    99+
    2023-05-15
    PHP redis 集成率计算
  • 怎么使用python获取cpu每秒的使用率
    今天小编给大家分享一下怎么使用python获取cpu每秒的使用率的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。获取cpu每秒...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作