JavaHelloworld监控管理原理概述:)微信搜索“程序猿Alan”。本文已收录在Github.com/niumoo/JavaNotes和ProgrammerAlanBlog,里面有很多知识点和系列文章。当前文章属于Java性能分析与优化系列,点击查看全部文章。本文是Java性能分析监控与优化系列文章的第一篇。本来打算介绍Java性能分析方法和流行的监控工具,但是写完之后才发现只介绍分析方法和监控工具太简单了。.如果只使用某个工具,而不知道其背后的实现原理,总会有一种陌生感。我觉得你也是一样的,所以加了这篇文章。JavaSE监控管理特性本文介绍Java标准版(JavaSE)平台提供的监控管理技术——JMX(JavaManagementExtensions)技术。JavaSE平台本身提供了监控管理服务的实用功能模块,按功能主要分为以下四类:Java监控管理APIJava虚拟机检测Java管理扩展技术(JMX)Java监控管理本文ontools将介绍这四个部分的相关知识,旨在了解JavaSE监控管理的相关功能,并对相关概念有一个了解。Java监控和管理APIJavaSE包括用于监控和管理的(java.lang.management)API。通过这些API,可以实现应用的自我监控。该API主要提供访问以下信息:类加载相关。JVM相关,比如运行时、系统环境变量、用户输入参数。线程相关的,比如线程状态、线程统计、线程堆栈等内存使用情况。GC情况。死锁检测。操作系统信息。下图是Java17中的java.management模块,JConsole通过访问这些管理API提供的数据,绘制出监控的接口版本。Java虚拟机监控如上所述,JavaSE具有内置的开箱即用的监控和管理功能。通过这些功能,可以实现程序的自我监控。Java默认实现了对Java虚拟机相关信息的监控。在Java监控和管理API部分也列出了一些API可以监控的内容,那么如何使用呢?下面通过一个简单的例子来演示如何通过监控管理API获取系统信息、编译器信息、内存信息和垃圾收集器信息。包com.wdbyte;导入java.lang.management.CompilationMXBean;导入java.lang.management.GarbageCollectorMXBean;导入java.lang.management.ManagementFactory;导入java.lang.management.MemoryMXBean;导入java.lang.management.MemoryManagerMXBean;导入java.lang.management.MemoryUsage;导入java.lang.management.OperatingSystemMXBean;导入java.util.List;导入java.util.stream.Collectors;公共类JavaManagement{publicstaticvoidmain(String[]args){OperatingSystemMXBeanoperatingSystemMXBean=ManagementFactory.getOperatingSystemMXBean();StringosName=operatingSystemMXBean.getName();StringosVersion=operatingSystemMXBean.getVersion();intprocessors=operatingSystemMXBean.getAvailableProcessors();System.out.println(String.format("操作系统:%s,版本:%s,处理器:%d个",osName,osVersion,processors));CompilationMXBeancompilationMXBean=ManagementFactory.getCompilationMXBean();细绳compilationMXBeanName=compilationMXBean.getName();System.out.println("编译系统:"+compilationMXBeanName);MemoryMXBeanmemoryMXBean=ManagementFactory.getMemoryMXBean();MemoryUsageheapMemoryUsage=memoryMaxBean.getHeapMemoryUsage();longmax=heapMemory(Usage)longused=heapMemoryUsage.getUsed();System.out.println(String.format("已用内存:%dMB/%dMB",used/1024/1024,max/1024/1024));List
