先上代码,保证这是目前全网最简单的获取系统CPU占用率、内存占用率的方法

    @Testpublic void testSystemUsage() {final long GB = 1024 * 1024 * 1024;while (true) {OperatingSystemMXBean operatingSystemMXBean = ManagementFactory.getOperatingSystemMXBean();String osJson = JSON.toJSONString(operatingSystemMXBean);
//            System.out.println("osJson is " + osJson);JSONObject jsonObject = JSON.parseObject(osJson);double processCpuLoad = jsonObject.getDouble("processCpuLoad") * 100;double systemCpuLoad = jsonObject.getDouble("systemCpuLoad") * 100;Long totalPhysicalMemorySize = jsonObject.getLong("totalPhysicalMemorySize");Long freePhysicalMemorySize = jsonObject.getLong("freePhysicalMemorySize");double totalMemory = 1.0 * totalPhysicalMemorySize / GB;double freeMemory = 1.0 * freePhysicalMemorySize / GB;double memoryUseRatio = 1.0 * (totalPhysicalMemorySize - freePhysicalMemorySize) / totalPhysicalMemorySize * 100;StringBuilder result = new StringBuilder();result.append("系统CPU占用率: ").append(twoDecimal(systemCpuLoad)).append("%,内存占用率:").append(twoDecimal(memoryUseRatio)).append("%,系统总内存:").append(twoDecimal(totalMemory)).append("GB,系统剩余内存:").append(twoDecimal(freeMemory)).append("GB,该进程占用CPU:").append(twoDecimal(processCpuLoad)).append("%");System.out.println(result.toString());try {Thread.sleep(500);} catch (InterruptedException e) {e.printStackTrace();}}}public double twoDecimal(double doubleValue) {BigDecimal bigDecimal = new BigDecimal(doubleValue).setScale(2, RoundingMode.HALF_UP);return bigDecimal.doubleValue();}

这代码我注释都懒得写一行了,主要是这一行:JSON.toJSONString(operatingSystemMXBean),输出的结果如图:(使用的是阿里巴巴的fastjson)

我当时只是为了偷懒一个个去get输出,就直接通过JSON的方式打印输出了,结果不输出不知道,一输出吓一跳,把一堆隐藏字段都给输出出来了,包括systemCpuLoad、processCpuLoad,这两个字段一个就是系统CPU总的利用率,另一个应该是这个Java进程当前的CPU利用率,这样就省去很多事了,直接通过JSONObject取出来就是了,直接就给输出出来了。

其中:OperatingSystemMXBean这个类是JDK自带的,不用引入任何第三方jar包

输出最终结果如下:

【原创】Java获取CPU占用率、内存占用率最简单的方式相关推荐

  1. java获取网络带宽_Linux Java 获取CPU使用率,内存使用率,磁盘IO,网络带宽使用率等等...

    /** * 获取带宽上传下载速度 * @return */ public String getNetWorkSpeed() { boolean result = false; String detai ...

  2. ubuntu实时显示网速cpu占用和内存占用率

    ubuntu实时显示网速cpu占用和内存占用率 大家在使用ubuntu的时候,有没有想让它实时显示网速,内存占用率,或者cpu占用率呢?现在我就教大家怎么实现,就像下面这样 1. 添加indicato ...

  3. java 收集系统资源_方法:Linux 下用JAVA获取CPU、内存、磁盘的系统资源信息

    CPU使用率: InputStream is = null; InputStreamReader isr = null; BufferedReader brStat = null; StringTok ...

  4. 【Linux学习笔记】Linux获取CPU使用率,内存使用率和磁盘使用率

    实现目标: 在Linux上使用shell脚本回显系统当前的CPU使用率.内存使用率和磁盘空间使用率 1.CPU使用率: 使用top命令能够实时显示系统中各个进程的资源占用状况,所以这边可以使用top命 ...

  5. Qt linux获取cpu使用率、内存、网络收发速度、磁盘读写速度、磁盘剩余空间等

    Qt linux获取cpu使用率.内存.网络收发速度.磁盘读写速度.磁盘剩余空间等,实际上大部分都和qt无关的,用其他语言也可以获取. code: .h #ifndef RESOURCE_MINITO ...

  6. java获取cpu数量,以及cpu使用率(cpu负载)

    Java获取cpu数量,cpu使用率 如下是spring-boot监控服务spring-boot-starter-actuator源码中获取cpu个数,cpu使用率的方式. import com.su ...

  7. [No0000112]ComputerInfo,C#获取计算机信息(cpu使用率,内存占用率,硬盘,网络信息)...

    github地址:https://github.com/charygao/SmsComputerMonitor 软件用于实时监控当前系统资源等情况,并调用接口,当资源被超额占用时,发送警报到个人手机: ...

  8. 使用python进行Linux服务器监测,画CPU使用率和内存占用图

    整体思想 1.使用python包psutil 获取linux服务器CPU.内存等相关数据 2.数据保存在本地或者保存在数据库 3.读取数据,使用python包pyecharts画图 4.使用Flask ...

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

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

最新文章

  1. 对DIP IoC DI的理解与运用
  2. make for arm
  3. 十大编程算法助程序员走上高手之路
  4. SAP HR 报表开发
  5. 推荐:李沐开源新作,一起来《动手学深度学习》
  6. html金额自动换算成大写,[求助]word文档中金额数字自动转换为大写
  7. 信息流服务器哪种好,选购存储服务器需要注意六大关键因素,你知道几个?
  8. github设置中文_静态博客托管图片至 GitHub
  9. 机器学习笔记(九)---- 集成学习(ensemble learning)【华为云技术分享】
  10. 消息中间件学习总结(17)——MQ与RPC的区别和关联
  11. Python 在数据科学中一直打压 R 语言?
  12. (解决办法)Windows Server 2003安装sp1时说产品密钥无效
  13. 史上最全源码安装ROS-BUG解决集合2:在树莓派4B上安装Raspbian Bluster aarch64系统 + ROS-Melodic
  14. C语言之图书管理系统(功能齐全!!!)
  15. 复习笔记:数据库编程题
  16. Visual Studio2022 运行代码时“发生生成错误,是否继续并运行上次的成功生成”
  17. 最近做code review的5点经验分享
  18. CSA创建用户以及组、管理用户密码、简单用户身份切换
  19. 稀疏图Johnson算法
  20. 关于arch配置touchpad触摸

热门文章

  1. 中国联通5G白皮书大全(2018年发布)-随时下载
  2. 如何用数学课件制作工具画出固定长度的线段
  3. 未来AI智能对人类的影响的利弊
  4. 2022年1月19日
  5. Easy File Sharing Server7.2漏洞复现
  6. (原創) 如何破解Synplify Pro 9.6.2? (SOC) (Synplify)
  7. 50用户中小企业办公桌面云方案
  8. 如何设置word页脚中的总页码
  9. android内容复制到剪贴板
  10. 电子白板在教学应用中的主要优势