jvisualvm的使用
来源:互联网 发布:淘宝装修设计多少钱 编辑:程序博客网 时间:2024/05/21 15:49
在多线程调试的时候用到了java的VisualVM工具,jdk1.6自动带了该工具。介绍下该工具的使用方法:
准备
在windows下由于以下原因会导致 Local Applications Cannot Be Detected (Error Dialog On Startup):
1. Java程序缺少读写Windows的临时目录的权限
2. Windows的临时目录是放在非NTFS分区(确切地说,是不支持ACL的分区)
所以我们必须保证以下两点
1. 重新授权,保证对Windows的临时目录有足够的权限
2. 运行需要监控的Java程序时加上参数-XX:+PerfBypassFileSystemCheck
打开jvisualvm.exe,VisualVM的应用程序窗口的本地节点就会自动显示本地系统上运行的java程序的名称和进程id
右击其中的一个本地应用/enable heap dump on oome/双击该本地应用
见图
监控,可以监控到如下环境
堆(Heap) 从图中我们可以看到 java.lang.OutOfMemoryError: Java heap space
内存永久保存区(PermGen)
类
线程
我们还可以执行垃圾回收和heapdump.可以查看每个类,每个实例的dump。查看实例的dump的方法是双击某个类名打开“实例”视图,以查看实例列表。
线程
可以查看每个线程的状态,以及Thread Dump.
性能分析器(Profiler)
可以分析本地应用程序的内存使用情况和 CPU 性能。
连接到远程主机
要从远程应用程序中检索数据,需要在远程 JVM 上运行 jstatd 实用程序。有关如何启动 jstatd 的更多信息 请参见 jstatd - Virtual Machine jstat Daemon(jstatd - 虚拟机 jstat 守护进程)。无法对远程主机上运行的应用程序进行性能分析。
1需要在被监控的服务器上面,通过jstatd来启动RMI服务。新建个文件jstatd.all.policy 文件内容如下:
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
2启动jstatd
jstatd -J-Djava.security.policy=jstatd.all.policy &
上面启动的RMI服务的端口是1099。启动通过:netstat -an|grep 8888可以查看端口是否已经被监听
3连接远程主机
- 右键单击“应用程序”窗口中的“远程”节点,然后选择“添加远程主机”。
- 在“添加远程主机”对话框中,键入远程计算机的主机名或 IP 地址。
- (可选)键入远程主机的显示名称。此名称将显示在“应用程序”窗口中。如果没有输入显示名称,则在“应用程序”窗口中使用主机名标识远程主机。
- 单击“确定”。
- jvisualvm的使用
- jvisualvm的使用
- jvisualVM的使用
- jvisualvm插件的使用
- JVisualVM使用
- jvisualvm使用
- 使用jvisualvm
- JVisualVM对内存线程的分析使用
- jvisualvm.exe使用时涉及的配置、使用方式
- Jvisualvm使用介绍
- jvisualvm使用注意事项
- Java 性能测试 - 使用jdk自带的jvisualvm
- jvisualvm
- jvisualvm
- jvisualvm
- jvisualvm
- 使用JVisualVM远程监控Tomcat
- Mac下JVisualVM基本使用
- MSDN NM_CUSTOMDRAW (list view) 中文翻译
- 四大类手机游戏的未来机会
- cvsnt 创建管理员与administrator冲突
- asp.net中zedgraph柱状图的使用总结
- 推荐一款免费的原型设计工具Balsamiq Mockups
- jvisualvm的使用
- 如何在Apusic中正确加入“-javaagent”参数
- 一个很讽刺的图画
- 我是最闪亮的单身贵族!
- test
- 重新开张
- 一些重要的网络结构体ifconf, ifreq,sockaddr,caddr_t
- J2ME与MIDP开发
- 解决IE6、IE7、IE8样式不兼容问题