美文网首页程序员
Java性能调优工具VisualVM使用简记

Java性能调优工具VisualVM使用简记

作者: JianlingZhou | 来源:发表于2018-04-28 15:46 被阅读306次

背景

实验用 Java3d 做树木建模,其中一个重要过程是从三维点云中提取出树木骨架,这里的骨架提取算法包括且不限于八叉树降采样、k近邻提取邻居图、Dijkstra计算最短路径、提取图联通分量、k-means 聚类、目标函数最优化、三次曲线插值等过程。

用一套算法组成的 pipeline 来实现骨架提取,时间开销还是一个比较重要的评估因素的。

所以要做 Profile,一个土办法是,在几个关键方法入口和出口记录时间戳,两个时间戳一减得到这个方法的时间开销。一开始我就是这么干的:


换更高效的工具

还是换个更高效的工具吧,我发现 IntelliJ IDEA 居然默认不提供 Profiler,去搜索了一下,有人提到 VisualVM,于是下载了这个插件。后来发现这个插件本身不是 Profiler,我得去官网下载这个工具。

用法

其实,压根不需要下载 IntelliJ IDEA 的 VisualVM 插件,没什么卵用。直接下载 visualvm_141.zip,打开 ./bin/visualvm.exe。

  1. 打开后显示出了当前 JRE 下面所有在跑的 Java 应用。
  2. 运行要 Profile 的 Java 应用。
  3. 打开 Profiler 页面,先点 CPU,再点 Stop,两次点击之间就在做 Profile 了。下面的结果就出来了。

但是还是要注意一下,右边的红框框里面的类才会被 Profile。
另外就是,启动 Java 应用后,Java 应用不会留给我时间去点那个 CPU 按钮,所以我干脆在 main() 函数的第一行加了一句

new Scanner(System.in).nextLine();

这样我点击了 CPU 按钮后,再去命令行敲一下回车,程序再跑起来。这种方法也是很土的,不过还挺好用。

相关文章

网友评论

    本文标题:Java性能调优工具VisualVM使用简记

    本文链接:https://www.haomeiwen.com/subject/szmglftx.html