package test1;

import java.lang.management.CompilationMXBean;
import java.lang.management.GarbageCollectorMXBean;
import java.lang.management.ManagementFactory;
import java.lang.management.MemoryMXBean;
import java.lang.management.MemoryPoolMXBean;
import java.lang.management.MemoryUsage;
import java.lang.management.OperatingSystemMXBean;
import java.lang.management.RuntimeMXBean;
import java.lang.management.ThreadMXBean;
import java.util.List; public class Test11 {
/**
* @param args
*/
public static void main(String[] args) {
//==========================Memory=========================
System.out.println("==========================Memory=========================");
MemoryMXBean memoryMBean = ManagementFactory.getMemoryMXBean();
MemoryUsage usage = memoryMBean.getHeapMemoryUsage();
System.out.println("初始化 Heap: " + (usage.getInit()/1024/1024) + "mb");
System.out.println("最大Heap: " + (usage.getMax()/1024/1024) + "mb");
System.out.println("已经使用Heap: " + (usage.getUsed()/1024/1024) + "mb");
System.out.println("Heap Memory Usage: " + memoryMBean.getHeapMemoryUsage());
System.out.println("Non-Heap Memory Usage: " + memoryMBean.getNonHeapMemoryUsage());
//==========================Runtime=========================
System.out.println("==========================Runtime=========================");
RuntimeMXBean runtimeMBean = ManagementFactory.getRuntimeMXBean();
System.out.println("JVM name : " + runtimeMBean.getVmName());
System.out.println("lib path : " + runtimeMBean.getLibraryPath());
System.out.println("class path : " + runtimeMBean.getClassPath());
System.out.println("getVmVersion() " + runtimeMBean.getVmVersion());
//java options
List<String> argList = runtimeMBean.getInputArguments();
for(String arg : argList){
System.out.println("arg : " + arg);
}
//==========================OperatingSystem=========================
System.out.println("==========================OperatingSystem=========================");
OperatingSystemMXBean osMBean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
//获取操作系统相关信息
System.out.println("getName() "+ osMBean.getName());
System.out.println("getVersion() " + osMBean.getVersion());
System.out.println("getArch() "+osMBean.getArch());
System.out.println("getAvailableProcessors() " + osMBean.getAvailableProcessors());
//==========================Thread=========================
System.out.println("==========================Thread=========================");
//获取各个线程的各种状态,CPU 占用情况,以及整个系统中的线程状况
ThreadMXBean threadMBean=(ThreadMXBean)ManagementFactory.getThreadMXBean();
System.out.println("getThreadCount() " + threadMBean.getThreadCount());
System.out.println("getPeakThreadCount() " + threadMBean.getPeakThreadCount());
System.out.println("getCurrentThreadCpuTime() " + threadMBean.getCurrentThreadCpuTime());
System.out.println("getDaemonThreadCount() " + threadMBean.getDaemonThreadCount());
System.out.println("getCurrentThreadUserTime() "+ threadMBean.getCurrentThreadUserTime());
//==========================Compilation=========================
System.out.println("==========================Compilation=========================");
CompilationMXBean compilMBean=(CompilationMXBean)ManagementFactory.getCompilationMXBean();
System.out.println("getName() " + compilMBean.getName());
System.out.println("getTotalCompilationTime() " + compilMBean.getTotalCompilationTime());
//==========================MemoryPool=========================
System.out.println("==========================MemoryPool=========================");
//获取多个内存池的使用情况
List<MemoryPoolMXBean> mpMBeanList= ManagementFactory.getMemoryPoolMXBeans();
for(MemoryPoolMXBean mpMBean : mpMBeanList){
System.out.println("getUsage() " + mpMBean.getUsage());
System.out.println("getMemoryManagerNames() "+ mpMBean.getMemoryManagerNames().toString());
}
//==========================GarbageCollector=========================
System.out.println("==========================GarbageCollector=========================");
//获取GC的次数以及花费时间之类的信息
List<GarbageCollectorMXBean> gcMBeanList=ManagementFactory.getGarbageCollectorMXBeans();
for(GarbageCollectorMXBean gcMBean : gcMBeanList){
System.out.println("getName() " + gcMBean.getName());
System.out.println("getMemoryPoolNames() "+ gcMBean.getMemoryPoolNames());
}
//==========================Other=========================
System.out.println("==========================Other=========================");
//Java 虚拟机中的内存总量,以字节为单位
int total = (int)Runtime.getRuntime().totalMemory()/1024/1024;
System.out.println("内存总量 :" + total + "mb");
int free = (int)Runtime.getRuntime().freeMemory()/1024/1024;
System.out.println("空闲内存量 : " + free + "mb");
int max = (int) (Runtime.getRuntime().maxMemory() /1024 / 1024);
System.out.println("最大内存量 : " + max + "mb"); }
}

获取本地的jvm信息,进行图形化展示的更多相关文章

  1. 获取本地IP地址信息

    2012-06-05    /// <summary>         /// 获取本地IP地址信息         /// </summary>         void G ...

  2. 利用Python+pyecharts+tushare图形化展示股票历史财务信息

    在微信或其他平台上,经常能看到别人推荐股票,分析的头头是道,让自己懊恼于没有早点关注到这只股票,好像错失了几个亿.但是投资股票又忌讳听消息跟风,总不能看到别人推荐自己就无脑买入. 看到了一只股票,自己 ...

  3. DL4J实战之六:图形化展示训练过程

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本篇是<DL4J实战>系列的第六 ...

  4. Nginx filebeat+logstash+Elasticsearch+kibana实现nginx日志图形化展示

    filebeat+logstash+Elasticsearch+kibana实现nginx日志图形化展示   by:授客  QQ:1033553122   测试环境 Win7 64 CentOS-7- ...

  5. UAVStack JVM监控分析工具:图形化展示采集及分析监控数据

    摘要:UAVStack推出的JVM监控分析工具提供基于页面的展现方式,以图形化的方式展示采集到的监控数据:同时提供JVM基本参数获取.内存dump.线程分析.内存分配采样和热点方法分析等功能. 引言 ...

  6. iNeuOS工业互联平台,WEB组态(iNeuView)集成图报组件,满足实时数据图形化展示的需求

    目       录 1.      概述... 1 2.      平台演示... 2 3.      应用过程... 3 4.      实时数据展示效果... 5 1.   概述 市场和开源社区有 ...

  7. ioctl()获取本地网卡设备信息

    获得eth0接口所有信息: #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #inclu ...

  8. kong插件Prometheus+grafana图形化展示

    目录 1. 准备工作 3. 为kong添加 prometheus插件 4. 打开kong的metrics支持 4. 配置prometheus.yml添加kong提供的数据信息 5. 在 Grafana ...

  9. Javascript 继承 图形化展示

      <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" conte ...

随机推荐

  1. spring----bean的使用

    这篇文章不介绍spring的相关概念,只记录一下springbean的创建方式和使用方式. 一.bean的创建和调用 1.创建演示需要用到的类:Student.Teacher.Person packa ...

  2. iOS-----------计算两个时间的时间差

    UIButton * nameButton = [UIButton buttonWithType:UIButtonTypeCustom]; nameButton.frame = CGRectMake( ...

  3. Grafana 利用Grafana Variables变量配置快速切换不同主机的图表数据展示

    用Grafana Variables变量配置快速切换不同主机的图表数据展示   by:授客 QQ:1033553122 测试环境 需求描述 操作步骤 结果展示 测试环境 influxdb-1.5.2. ...

  4. C++ 重点关键字

    const 四种用法 1.修饰变量起到限定只读作用: void func(const int a, const string str) {...} const int* func(...) {...} ...

  5. java线程介绍

    文章讲解要点 1.线程创建几种方式2.线程常见设置方法,包括优先级.优先级休眠.停止等3.多线程间的数据交互与锁机制4.项目源码下载   线程介绍.png 一.线程创建方式 常见的线程创建方法以下三种 ...

  6. 与webview打交道踩过的坑

    随着HTML5被越来越多的用到web APP的开发当中,webview这一个神器便日渐凸显出重要地位.简要的说,webview能够在移动应用中开辟出一个窗口,在里面显示html页面,css以及js代码 ...

  7. Python面试笔记二

    一.算法 1.归并排序 2.快速排序 3.算法复杂度 4.哈希表数据结构 二.数据库 1.设计一个用户关注系统的数据库表 1.设计一个用户关注系统的数据库表,写三个相关的SQL语句两张表,一张user ...

  8. LV 指定或修改逻辑卷的major, minor号[RHEL6]

    在创建逻辑卷时,可以指定逻辑卷的major和minor设备号. [-M|--persistent {y|n}] //Set to y to make the minor number specifie ...

  9. 进程间数据传递:Queue,Pipe 进程间数据共享:Manager

    1.使用multiprocessing模块的Queue实现数据传递 ''' 进程间通讯: Queue,用法跟线程里的Queue一样,put,get 线程queue没有做序列化,进程queue做序列化了 ...

  10. python之sqlalchemy的使用

    准备数据 from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column from sqla ...