| package com.dy.common.util; | 
|   | 
| import lombok.Data; | 
| import oshi.hardware.GlobalMemory; | 
|   | 
| import java.text.DecimalFormat; | 
|   | 
| /** | 
|  * @Author: liurunyu | 
|  * @Date: 2024/8/2 13:42 | 
|  * @Description | 
|  */ | 
| public class SysMemoryUtil { | 
|   | 
|     /** | 
|      * 内存信息 | 
|      */ | 
|     public static MemInfoVo info(GlobalMemory memory) { | 
|         MemInfoVo vo = new MemInfoVo() ; | 
|         vo.setTotal(toGbytes(memory.getTotal())); | 
|         vo.setUsed(toGbytes(memory.getTotal() - memory.getAvailable())); | 
|         vo.setFree(toGbytes(memory.getAvailable())); | 
|         return vo ; | 
|     } | 
|   | 
|     private static double toGbytes(double value){ | 
|         return value/1000000000.0 ; | 
|     } | 
|   | 
|     @Data | 
|     public static class MemInfoVo { | 
|         /** | 
|          * 内存总量 | 
|          */ | 
|         public double total; | 
|   | 
|         /** | 
|          * 已用内存 | 
|          */ | 
|         public double used; | 
|   | 
|         /** | 
|          * 剩余内存 | 
|          */ | 
|         public double free; | 
|   | 
|         public String toString(){ | 
|             DecimalFormat df = new DecimalFormat("#.####"); // 设定格式 | 
|             StringBuilder sb = new StringBuilder() ; | 
|             sb.append("   内存信息:\n"); | 
|             sb.append("      内存总量(G):" + df.format(total) + "\n"); | 
|             sb.append("      已用内存(G):" + df.format(used) + "\n"); | 
|             sb.append("      剩余内存(G):" + df.format(free) + "\n"); | 
|   | 
|             return sb.toString() ; | 
|         } | 
|     } | 
| } |