码迷,mamicode.com
首页 > 其他好文 > 详细

你可以使用VisualVM生成和分析海量数据

时间:2016-04-18 15:25:15      阅读:420      评论:0      收藏:0      [点我收藏+]

标签:

 

你可以使用VisualVM生成和分析海量数据、跟踪内存泄漏、监控垃圾回收器、执行内存和CPU分析,同时它还支持在MBeans上进行浏览和操作。尽管VisualVM自身要在JDK6这个版本上运行,但是JDK1.4以上版本的程序它都能监控。

安装
JDK1.6 Update7之后的版本中默认就带了 VisualVM,在bin目录下的 jvisualvm 就是:

Mac 下 JDK 默认安装在 /Library/Java/JavaVirtualMachines/版本号 目录下。

image

如果你想用最新版本的,则可以自行在 https://visualvm.java.net/ 下载。最新版本是 1.3.8 (2014年7月1日发布的)

 

VisualVM 左侧导航中,我们可以心理咨询看到它具有 “本地”、“远程”、“快照”等功能。如下图是我本地 XMind的监控情况。

image

下面的几个分析以 dubbo 的 demo 例子为例进行的截图。

内存分析
在监视标签内,我们可以看到实时的应用程序内存堆以及永久保留区域的使用情况。

内存堆使用情况

image

 

永久保留区域使用情况

image

 

OOM时对转存

此外,我们也可以通过 Applications 窗口右击应用程序节点来启用“在出现 OOME 时生成堆 Dump”功能,当应用程序出现 OutOfMemory 异常时,VisualVM 将自动生成一个堆转储。

image

内存分析结果

在 Profiler 标签,点击“内存”按钮将启动一个内存分析会话,等 VisualVM 收集和统计完相关性能数据信息,将会显示在性能分析结果。通过内存性能分析结果,我们可以查看哪些对象占用了较多的内存,存活的时颈腰椎疾病间比较长等,以便做进一步的优化。
此外,我们可以通过性能分析结果下方的类名过滤器对分析结果进行过滤。

image

 

CPU 分析
CPU使用情况

在监视标签内,我们可以查看 CPU 的使用率以及垃圾回收活动对性能的影响。过高的 CPU 使用率可能是由于我们的项目中存在低效的代码,可以通过 Profiler 标签的 CPU 性能分析功能进行详细的分析。如果垃圾回收活动过于频繁,占用了较高的 CPU 资源,可能是由内存不足或者是新生代和旧生代分配不合理导致的等。

image

CPU 性能分析结果

在 Profiler 标签,点击“CPU”按钮启动一个 CPU 性能分析会话 ,VisualVM 会检测应用程序所有的被调用的方法。当进入一个方法时,线程会发出一个“method entry”的事件,当退出方法时同样会发出一个“method exit”的事件,这些事件都包含了时间戳。然后 VisualVM 会把每个被调用方法的总的执行时间和调用的次数按照运行时长展示出来。

你可以使用VisualVM生成和分析海量数据

标签:

原文地址:http://www.cnblogs.com/wutuanmao123/p/5404436.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!