这可能是我写的最懒的博客系列了…如果仅仅是看一眼,那还真的是只能看一眼 /捂脸。
附上另外两篇懒博客:
写在前面
使用后续描述的两种命令来监视和管理Java应用程序。命令的可执行jar 包,可在 JDK
的 bin
路径下找到。由于该路径已经加到了环境变量中,我们可以在任何路径下的命令行窗口执行以下的命令。
jconsole
启动图形化控制台,监视和管理Java应用程序。
语法:jconsole [options] [connection...]
Options:
-
-interval=n
将更新间隔设置为 n 秒(默认为 4 秒)
-
-notile
最初不平铺两个窗口(用于两个或多个连接)
-
-pluginpath plugins
指定要搜索
JConsole
插件的目录或JAR文件的列表。 -
-version
显示发布信息并退出
-
-help
显示帮助信息
-
-Jflag
传递
flag
到jconsole
所运行的JVM
。
connection:
connection=pid|host:port|jmxURL
该 pid
值是本地 Java 虚拟机(JVM
)的进程ID。JVM
必须以与运行jconsole
命令的用户ID相同的用户ID运行。这些host:port
值是运行JVM
的主机系统的名称,以及com.sun.management.jmxremote.port
启动JVM
时由系统属性指定的端口号。jmxUrl
值是要连接的JMX
代理的地址。有关这一部分的更详细内容参考 JMX的用处及用法。
测试:
运行以下代码:
public class Test{
private byte[] bytes = new byte[1024*1024];
public static void main(String[] args) throws Exception{
Test[] tests = new Test[1024];
for(int i=0; i< 1024; i++){
tests[i] = new Test();
Thread.sleep(2000);
}
}
}
使用命令行工具打开 jconsole
, 选择 Test
:
jvisualvm
可视化地监视、诊断和配置Java应用程序。
语法:jvisualvm [options]
Java VisualVM
是一个直观的图形用户界面,当基于Java
技术的应用程序(Java应用程序)在指定的Java虚拟机(JVM
)上运行时,可提供有关它们的详细信息。
Java VisualVM
之所以命名,是因为 Java VisualVM
可视地提供了有关 JVM
软件的信息。Java VisualVM
将多个监视,故障排除和性能分析实用程序组合到一个工具中。例如,大多数的功能提供由独立的工具jmap
,jinfo
,jstat,
和jstack
被整合到Java
的VisualVM
。可以将其他功能(例如jconsole
命令提供的功能)添加为可选插件。
Java VisualVM
对 Java 应用程序开发人员进行应用程序故障排除以及监视和改善应用程序的性能很有用。Java VisualVM
使开发人员能够生成和分析堆转储,跟踪内存泄漏,执行和监视垃圾回收以及执行轻量级内存和CPU性能分析。您可以使用插件扩展Java VisualVM
功能。例如,该jconsole
命令的大多数功能都可以通过“ MBeans
选项卡”和“JConsole
插件包装器”插件获得。您可以从标准Java VisualVM
插件的目录中选择,方法是依次选择工具和Java VisualVM
”菜单中的“ 插件 ”。
测试:
运行 jvisualvm
命令,选择 Test: