【原创】Java获取CPU占用率、内存占用率最简单的方式
先上代码,保证这是目前全网最简单的获取系统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占用率、内存占用率最简单的方式相关推荐
- java获取网络带宽_Linux Java 获取CPU使用率,内存使用率,磁盘IO,网络带宽使用率等等...
/** * 获取带宽上传下载速度 * @return */ public String getNetWorkSpeed() { boolean result = false; String detai ...
- ubuntu实时显示网速cpu占用和内存占用率
ubuntu实时显示网速cpu占用和内存占用率 大家在使用ubuntu的时候,有没有想让它实时显示网速,内存占用率,或者cpu占用率呢?现在我就教大家怎么实现,就像下面这样 1. 添加indicato ...
- java 收集系统资源_方法:Linux 下用JAVA获取CPU、内存、磁盘的系统资源信息
CPU使用率: InputStream is = null; InputStreamReader isr = null; BufferedReader brStat = null; StringTok ...
- 【Linux学习笔记】Linux获取CPU使用率,内存使用率和磁盘使用率
实现目标: 在Linux上使用shell脚本回显系统当前的CPU使用率.内存使用率和磁盘空间使用率 1.CPU使用率: 使用top命令能够实时显示系统中各个进程的资源占用状况,所以这边可以使用top命 ...
- Qt linux获取cpu使用率、内存、网络收发速度、磁盘读写速度、磁盘剩余空间等
Qt linux获取cpu使用率.内存.网络收发速度.磁盘读写速度.磁盘剩余空间等,实际上大部分都和qt无关的,用其他语言也可以获取. code: .h #ifndef RESOURCE_MINITO ...
- java获取cpu数量,以及cpu使用率(cpu负载)
Java获取cpu数量,cpu使用率 如下是spring-boot监控服务spring-boot-starter-actuator源码中获取cpu个数,cpu使用率的方式. import com.su ...
- [No0000112]ComputerInfo,C#获取计算机信息(cpu使用率,内存占用率,硬盘,网络信息)...
github地址:https://github.com/charygao/SmsComputerMonitor 软件用于实时监控当前系统资源等情况,并调用接口,当资源被超额占用时,发送警报到个人手机: ...
- 使用python进行Linux服务器监测,画CPU使用率和内存占用图
整体思想 1.使用python包psutil 获取linux服务器CPU.内存等相关数据 2.数据保存在本地或者保存在数据库 3.读取数据,使用python包pyecharts画图 4.使用Flask ...
- java获取cpu使用率_再一次生产 CPU 高负载排查实践
前言 前几日早上打开邮箱收到一封监控报警邮件:某某 ip 服务器 CPU 负载较高,请研发尽快排查解决,发送时间正好是凌晨. 其实早在去年我也处理过类似的问题,并记录下来:<一次生产 CPU 1 ...
最新文章
- 对DIP IoC DI的理解与运用
- make for arm
- 十大编程算法助程序员走上高手之路
- SAP HR 报表开发
- 推荐:李沐开源新作,一起来《动手学深度学习》
- html金额自动换算成大写,[求助]word文档中金额数字自动转换为大写
- 信息流服务器哪种好,选购存储服务器需要注意六大关键因素,你知道几个?
- github设置中文_静态博客托管图片至 GitHub
- 机器学习笔记(九)---- 集成学习(ensemble learning)【华为云技术分享】
- 消息中间件学习总结(17)——MQ与RPC的区别和关联
- Python 在数据科学中一直打压 R 语言?
- (解决办法)Windows Server 2003安装sp1时说产品密钥无效
- 史上最全源码安装ROS-BUG解决集合2:在树莓派4B上安装Raspbian Bluster aarch64系统 + ROS-Melodic
- C语言之图书管理系统(功能齐全!!!)
- 复习笔记:数据库编程题
- Visual Studio2022 运行代码时“发生生成错误,是否继续并运行上次的成功生成”
- 最近做code review的5点经验分享
- CSA创建用户以及组、管理用户密码、简单用户身份切换
- 稀疏图Johnson算法
- 关于arch配置touchpad触摸