如何使用 VisualVM 测量短期运行的 Java 应用程序的性能?

Posted

技术标签:

【中文标题】如何使用 VisualVM 测量短期运行的 Java 应用程序的性能?【英文标题】:How can I measure the performance of a short-running Java application with VisualVM? 【发布时间】:2016-03-19 01:46:05 【问题描述】:

我有一个小型 Java 应用程序,它将一个大文件读入内存,进行一些处理并将一些结果打印到标准输出。它被捆绑为一个 jar 文件。

我想使用 Java VisualVM 测量应用程序的性能,包括内存和速度,但我似乎无法附加到 jar 的执行,因为它只运行大约 2 秒.

如何衡量这个短期运行的应用程序的性能?

【问题讨论】:

jmeter.apache.org -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=1044。注意“y” - 这要求 JVM 挂起,直到附加调试器。 【参考方案1】:

您可以在 IDE 中使用 VisualVM 启动您的程序。 Eclipse 和 IntelliJ 具有 Visual VM 插件,这使得使用 Visual VM 启动程序变得非常容易,而无需在启动后连接到应用程序。我的理解是 Netbeans 有一个 VisualVM 所基于的集成分析器。

日食:https://visualvm.java.net/eclipse-launcher.html IntelliJ:https://plugins.jetbrains.com/plugin/?idea&pluginId=7115

【讨论】:

【参考方案2】:

您可以尝试启动分析器插件:

https://visualvm.java.net/startupprofiler.html

适用于 VisualVM 1.3.6 的 Startup Profiler 插件支持从本地 Java 5+ 应用程序启动时对其进行检测分析。在分析短期运行的进程时,它也很有帮助。

【讨论】:

以上是关于如何使用 VisualVM 测量短期运行的 Java 应用程序的性能?的主要内容,如果未能解决你的问题,请参考以下文章

VisualVM工具的使用

如何在 STS 中使用 VisualVM 分析器?

如何使用 VisualVM 获取每个函数的时间成本 [重复]

如何减少 VisualVM 对堆使用的影响?

[转]VisualVM 入门指南

使用 VisualVM 监控 Java 应用程序