如何使用IntelliJ IDEA编辑器对Java源代码进行性能分析?

83

我知道Netbeans有一种"集成"的分析器,例如你可以运行单元测试并使用它来分析和找出何处减速,以及瓶颈在哪里。那么,在IntelliJ IDEA编辑器中是否可以对代码进行分析?


1
据我所知,目前只有一个免费的性能分析集成工具:VisualVM - CrazyCoder
据说有一个非免费的JProfiler插件,供您参考。https://dev59.com/yGEi5IYBdhLWcg3wldBu#21156875 - rogerdpack
今天我在IntelliJ IDEA中安装了VisualVM插件...一开始我遇到了一些问题,但是当我按照http://blog.idrsolutions.com/2013/05/setting-up-visualvm-in-under-5-minutes/提供的说明进行操作时,我很容易地配置了VisualVM。 - Shirishkumar Bari
2
另一个过于实际和有用的问题,不应该保持开放状态。SO 应该支持带有答案集 {N} 的问题,其中来自集合的足够好的结果 [XYZ] 通过社区上升到顶部,其余的则因自然衰减而消失/需要额外的操作。同样是通过社区。"你真的想回答这个问题吗?因为已经有一个被投票评为相当好的答案了?""是的,因为现在有更好的最佳答案。"我的意思是这在软件中从来没有发生过,对吧? - P.Brian.Mackey
1
在 IntelliJ IDEA v2018.3 旗舰版中,JVM 分析器作为实验性功能可用。请参阅 https://blog.jetbrains.com/idea/2018/09/intellij-idea-2018-3-eap-git-submodules-jvm-profiler-macos-and-linux-and-more/。 - chipiik
使用Windows分析器,请使用2019.2 RC版本:https://blog.jetbrains.com/idea/2019/06/intellij-idea-2019-2-eap-4-profiling-tools-structural-search-preview-and-more/ - Det
2个回答

56
你可以通过插件免费尝试VisualVM分析器的集成。

4
不会的,YourKit代理将允许您在遇到性能问题并联系支持时拍摄CPU/内存快照,它并不是会使您额外支付500美元的分析器本身。 - CrazyCoder
1
@rogerdpack为什么不直接打开VisualVM(您已经通过JDK安装了它),选择您的应用程序并按“Profile”按钮? - Matsemann
3
Krasa的VisualVM Launcher插件启动VisualVM存在以下问题: 1)它在测试完成时才开始运行。 2)实时分析会产生热点,导致CPU时间统计难以阅读。 VisualVM中有一个“编辑配置”复选框,但我不知道如何要求插件以正确的方式启动测试,即等待VisualVM就绪、将特定于测试的分析配置加载到VisualVM中并运行测试代码。 - smile-on
YourKit 2013版本不是免费的,但明确宣称具有独立的Java分析器及IDE集成的功能,支持IntelliJ IDEA 13。请查看YourKit 2013版本发布说明。 - smile-on
1
@smile-on,你找到解决方案了吗?你的测试在VisualVM启动之前就结束了吗?我自己也遇到了同样的问题。 - Stephen Murby
显示剩余2条评论

27

正如Stephen Murby指出的那样,存在一个问题:测试完成之前VisualVM已经启动。

是的,这个VisualVMLauncher插件不能将您的测试用例挂起,直到VisualVM启动。您可能还需要手动更改与测试相关的分析设置。解决方法很简单,您的测试用例必须停止并等待手动继续。有几种方法可以做到这一点:

1)将System.in.read();放在测试用例的第一行,并在VisualVM准备就绪后在控制台上按Enter键。

System.in.read();

2) 如果测试用例没有提供控制台,请等待某个神奇的文件被创建。

3) 你可以随时使用sleep()来轻松应对。

sleep(5 seconds);

这个解决方法并不是很方便,但对我来说足够了,因为我只需要偶尔进行分析。这个问题的根本原因在于IDEA和VisualVM的插件架构没有被考虑为协同工作。请参见与插件作者的讨论。 希望这可以帮到你。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接