java获取jvm内存信息 java获取jvm运行信息 java获取jvm运行信息

java获取jvm内存信息 java获取jvm运行信息 java获取jvm运行信息

  • 1、创建需要使用的工具类
  • 2、创建一个 jvm信息对象类
  • 3、使用

1、创建需要使用的工具类

文件名 ByteConverter.java 用于将字节数值转为 MB数值


import java.math.BigDecimal;
import java.math.RoundingMode;

/**
 * 

字节数值转换

*

* *

* * @author * @since **/
public class ByteConverter { /** * 将字节数量转换为MB * * @param bytes 字节数量 * @return 对应的MB */ public static BigDecimal bytesToMB(double bytes) { BigDecimal bytesConver = BigDecimal.valueOf(bytes); // 字节数量转换MB = 字节数 / (1024 * 1024) BigDecimal conditions = BigDecimal.valueOf(1048576L); return bytesConver.divide(conditions, 2, RoundingMode.HALF_UP); } }

2、创建一个 jvm信息对象类

import java.math.BigDecimal;
import java.math.RoundingMode;
import cn.hutool.core.lang.Singleton;


/**
 * 

JVM运行信息

*

* *

* * @author * @since **/
public class JvmInfo { /** * 单例模式,使用 hutool工具,也可以自己实现,也可以直接不用单例模式 直接new */ private static JvmInfo info = Singleton.get(JvmInfo.class); /** * JVM已用内存 */ private BigDecimal usedMemory; /** * JVM最大可用内存 */ private BigDecimal maxMemory; /** * JVM剩余内存 */ private BigDecimal freeMemory; /** * jdk安装路径 */ private String jdkHome; /** * jdk版本 */ private String jdkVersion; /** * JVM内存使用率 */ private BigDecimal usage; private JvmInfo(){} public static JvmInfo getInstans() { Runtime runtime = Runtime.getRuntime(); info.setUsedMemory(ByteConverter.bytesToMB(runtime.totalMemory() - runtime.freeMemory())); info.setMaxMemory(ByteConverter.bytesToMB(Runtime.getRuntime().maxMemory())); info.setFreeMemory(ByteConverter.bytesToMB(Runtime.getRuntime().freeMemory())); info.setUsage(info.getUsedMemory().divide(info.getMaxMemory(), 2, RoundingMode.HALF_UP).multiply(new BigDecimal("100"))); info.setJdkVersion(System.getProperty("java.version")); info.setJdkHome(System.getProperty("java.home")); return info; } public String getJdkVersion() { return jdkVersion; } public void setJdkVersion(String jdkVersion) { this.jdkVersion = jdkVersion; } public BigDecimal getUsage() { return usage; } public void setUsage(BigDecimal usage) { this.usage = usage; } public BigDecimal getUsedMemory() { return usedMemory; } public void setUsedMemory(BigDecimal usedMemory) { this.usedMemory = usedMemory; } public BigDecimal getMaxMemory() { return maxMemory; } public void setMaxMemory(BigDecimal maxMemory) { this.maxMemory = maxMemory; } public BigDecimal getFreeMemory() { return freeMemory; } public void setFreeMemory(BigDecimal freeMemory) { this.freeMemory = freeMemory; } public String getJdkHome() { return jdkHome; } public void setJdkHome(String jdkHome) { this.jdkHome = jdkHome; } }

3、使用

	public static void main(String[] args) {
		System.out.printf("JVM运行信息:%s", JvmInfo.getInstans());
	}

你可能感兴趣的:(java,SpringBoot,工具,java,jvm,开发语言)