Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Java Profilers探查器使用指南-Java快速入门教程

Java Profilers探查器使用指南-Java快速入门教程

作者头像
jack.yang
发布于 2025-04-05 13:14:13
发布于 2025-04-05 13:14:13
1090
举报

1. 概述

有时仅仅编写运行的代码是不够的。我们可能想知道内部发生了什么,例如内存是如何分配的,使用一种编码方法而不是另一种编码方法的后果,并发执行的影响,提高性能的领域等。我们可以为此使用探查器。

Java Profiler 是一种在 JVM 级别监视 Java 字节码构造和操作的工具。这些代码构造和操作包括对象创建、迭代执行(包括递归调用)、方法执行、线程执行和垃圾回收。

在本教程中,我们将探索主要的 Java Profilers:JProfilerYourKitJava VisualVM、Netbeans Profiler 和 IntelliJ Profiler

2. JProfiler

JProfiler是许多开发人员的首选。通过直观的用户界面,JProfiler 提供了用于查看系统性能、内存使用情况、潜在内存泄漏和线程分析的界面。

有了这些信息,我们可以很容易地看到我们需要优化、消除或更改底层系统的内容。

该产品需要购买许可证,但也提供免费试用。

以下是JProfiler的界面:

像大多数分析器一样,我们可以将此工具用于本地和远程应用程序。这意味着可以分析在远程计算机上运行的 Java 应用程序,而无需在其上安装任何内容。

JProfiler 还为 SQL 和 NoSQL 数据库提供高级分析。它为分析 JDBC、JPA/Hibernate、MongoDB、Casandra 和 HBase 数据库提供了特定的支持。

以下屏幕截图显示了包含当前连接列表的 JDBC 探测接口:

如果我们热衷于了解与我们的数据库交互的调用树并查看可能泄露的连接,JProfiler 可以很好地处理这个问题。

实时内存是JProfiler的一项功能,它允许我们查看应用程序的当前内存使用情况。我们可以查看对象声明和实例的内存使用情况,或者查看完整调用树的内存使用情况。

对于分配调用树,我们可以选择查看活动对象、垃圾回收对象的调用树,或两者兼而有之。我们还可以决定此分配树是针对特定类或包,还是针对所有类。

下面的屏幕显示了具有实例计数的所有对象的实时内存使用情况:

JProfiler 支持与流行的 IDE 集成,如 Eclipse、NetBeans 和 IntelliJ。甚至可以从快照导航到源代码。

3. YourKit

YourKit Java Profiler 在许多不同的平台上运行,并为每个支持的操作系统(WindowsMacOSLinuxSolarisFreeBSD 等)提供单独的安装。

与 JProfiler 一样,YourKit 具有可视化线程、垃圾收集、内存使用情况和内存泄漏的核心功能,并支持通过 ssh 隧道进行本地和远程分析。

YourKit 提供用于商业用途的付费许可证,其中包括免费试用版,以及用于非商业用途的低成本或免费许可证

以下是 Tomcat 服务器应用程序的内存分析结果的快速浏览:

当我们想要分析抛出的异常时,YourKit 也会派上用场。我们可以很容易地找出抛出的异常类型,以及每个异常发生的次数。

YourKit 有一个有趣的 CPU 分析功能,允许对代码的某些区域进行集中分析,例如线程中的方法或子树。这非常强大,因为它允许通过其假设功能进行条件分析。

图 5 显示了线程分析接口的示例:

我们还可以使用YourKit分析SQL和NoSQL数据库调用。它甚至为执行的实际查询提供视图。

虽然这不是技术考虑因素,但 YourKit 的宽松许可模式使其成为多用户或分布式团队以及单许可证购买的不错选择。

4. Java可视化虚拟机

Java VisualVM 是一个简化但健壮的 Java 应用程序分析工具。这是一个免费的开源分析器。

此工具与 Java 开发工具包 (JDK) 捆绑在一起,直到 JDK 8,但在 JDK 9 中被删除,现在作为独立工具分发:VisualVM Download

它的操作依赖于JDK中提供的其他独立工具,如JConsolejstatjstackjinfojmap

下面我们可以看到使用 Java VisualVM 的正在进行的性能分析会话的简单概述界面:

Java VisualVM 的一个有趣优势是我们可以扩展它以开发插件形式的新功能。然后,我们可以将这些插件添加到Java VisualVM的内置更新中心。

Java VisualVM 支持本地和远程性能分析,以及内存和 CPU 性能分析。连接到远程应用程序需要提供凭据(根据需要提供主机名/IP 和密码),但不提供对 ssh 隧道的支持。我们还可以选择通过即时更新(通常每 2 秒)启用实时分析。

下面我们可以看到使用 Java VisualVM 分析的 Java 应用程序的内存:

借助 Java VisualVM 的快照功能,我们可以拍摄分析会话的快照以供以后分析。

5. NetBeans 探查器

NetBeans Profiler 与 Oracle 的开源 NetBeans IDE 捆绑在一起。

虽然这个分析器与Java VisualVM有很多相似之处,但当我们希望将所有内容包装在一个程序(IDE + Profiler)中时,它是一个不错的选择。上面讨论的所有其他分析器都提供了插件来增强 IDE 的集成。

下面的屏幕截图显示了 NetBeans 探查器接口的示例:

Netbeans Profiler 也是轻量级开发和性能分析的不错选择。它提供了一个窗口,用于配置和控制性能分析会话以及显示结果。它提供了了解垃圾回收发生频率的独特功能。

6. IntelliJ Profiler

IntelliJ Profiler 是一个简单但功能强大的 CPU 和内存分配分析工具。它结合了两种流行的Java分析器的强大功能:JFR和异步分析器。

虽然有一些高级功能,但主要重点是易用性。IntelliJ Profiler 允许我们只需单击几下即可开始使用,而无需任何配置,同时提供有用的功能来帮助我们的日常开发工作。

作为IntelliJ IDEA Ultimate的一部分,IntelliJ Profiler只需单击一下即可附加到进程,我们可以在快照和源代码之间导航,就好像它们是快照一样。它的其他功能,如差分火焰图,使我们能够直观地评估不同方法的性能,并快速有效地深入了解运行时操作:

IntelliJ Profiler 适用于 Windows、Linux 和 macOS。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-04-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Java 性能分析 5 大工具
上一篇文章我们分享了 Java 性能分析 的理论知识,相信一定有人跃跃欲试了,下面轮到了实践环节,本文将会重点介绍 5 大分析利器,让各位在进行Java 性能分析的时候如虎添翼,更上层楼。
FunTester
2025/01/23
1820
Java 性能分析 5 大工具
JProfiler 13 for Mac(Java开发分析工具)
JProfiler 是一个功能强大的工具,您可以使用它以动态方式分析基于 Java 的应用程序,并使您能够分析它们以优化性能。当您配置文件时,您需要最强大的工具。同时,您不想花时间学习如何使用该工具。JProfiler 就是这样:既简单又强大。
Mac小小心
2023/03/26
7030
JProfiler 13 for Mac(Java开发分析工具)
Java 中的内存泄漏剖析-Java快速入门教程
Java的核心优势之一是在内置垃圾收集器(或简称GC)的帮助下进行自动内存管理。GC 隐式负责分配和释放内存,因此能够处理大多数内存泄漏问题。
jack.yang
2025/04/05
870
Java 中的内存泄漏剖析-Java快速入门教程
使用 VisualVM 进行性能分析及调优
开发大型 Java 应用程序的过程中难免遇到内存泄露、性能瓶颈等问题,比如文件、网络、数据库的连接未释放,未优化的算法等。随着应用程序的持续运行,可能会造成整个系统运行效率下降,严重的则会造成系统崩溃。为了找出程序中隐藏的这些问题,在项目开发后期往往会使用性能分析工具来对应用程序的性能进行分析和优化。
Java架构师历程
2018/09/26
2.6K0
使用 VisualVM 进行性能分析及调优
JVM-12虚拟机性能监控与故障处理工具之【JDK的可视化工具-VisualVM】
Visual VM (All-in-One Java Troubleshooting Tool)是目前为止随JDK发布的功能最强大的运行监视和故障处理程序。 Visual VM除了提供运行监视、故障处理外,还提供了比如性能分析(Profiling),对应用程序的实际性能影响很小,使得它可以直接应用在生产环境,这个优点是JProfiler、YourKit等第三方的性能分析工具无法比拟的.
小小工匠
2021/08/17
5110
Java进行内存泄露​ GC 分析都有哪些常用好用的工具
使用Java语言开发应用程序,虽然JVM帮我们进行了GC收集、清除工作;但是使用不当的话,还是会导致某些对象常驻堆空间无法给垃圾收集器清除,导致内存泄露、内存溢出等情况,今天盘点一下在项目中进行内存泄露分析和GC分析的一些常用、好用的工具。
BUG弄潮儿
2021/01/05
1.3K0
Java性能优化工具和技术
介绍 Java是当今软件开发世界中使用最广泛的编程语言之一。 Java应用程序在许多垂直领域(银行,电信,医疗保健等)中使用,在某些情况下,每个垂直方向都会提供一组特定的设计优化。许多与性能相关的最佳实践在各种应用中都是常见的。本指南目的是帮助开发人员通过关注JVM内部组件,性能调优原则和最佳实践以及如何利用可用的监控和故障排除工具,尽可能多地提供业务环境中的应用程序性能。 可以以不同的方式定义“最佳性能”,但基本要素是:Java程序在业务响应时间要求内执行计算任务的能力,以及应用程序实现其业务功能的
用户1263954
2018/01/30
2K0
Java性能优化工具和技术
Java一分钟之-Java性能分析与调优:JProfiler, VisualVM等工具
在Java开发中,性能优化是提升应用效率的关键步骤。本文将介绍两款常用的Java性能分析工具——JProfiler和VisualVM,以及它们如何帮助我们识别并解决性能问题。
Jimaks
2024/05/28
5930
Java一分钟之-Java性能分析与调优:JProfiler, VisualVM等工具
JProfiler 13 for Mac(Java开发分析工具)
JProfiler 是一个功能强大的工具,您可以使用它以动态方式分析基于 Java 的应用程序,并使您能够分析它们以优化性能。当您配置文件时,您需要最强大的工具。同时,您不想花时间学习如何使用该工具。JProfiler 就是这样:既简单又强大。
对影三人
2023/04/03
4420
JProfiler 13 for Mac(Java开发分析工具)
比较 VisualVM、JMC 和异步分析器
探查器的目的是获取有关程序执行的信息,以便开发人员可以了解某个方法在给定时间段内执行了多少时间。
IT千锋教育
2023/05/31
6570
Java 性能分析
在企业开发中,Java 依然占据着举足轻重的地位,但即使是最坚固的应用程序也可能面临性能下降的问题。在当今快节奏的数字世界里,识别并解决这些瓶颈变得尤为重要。这时,Java 分析器便成为您的秘密武器,帮助解决这些性能挑战。
FunTester
2025/01/23
710
Java 性能分析
JDK监控和故障处理工具总结
jps(JVM Process Status) 命令类似 UNIX 的 ps 命令。
Vincent-yuan
2021/09/08
3690
Java 开发者不容错过的 12 种高效工具 转
Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松。目前,市面上涌现出越来越多的高效编程工具。所以,以下总结了一系列工具列表,其中包含了大多数开发人员已经使用、正在使用或将来一定会用到的高效工具。这份列表名单包括集成开发环境、集成工具、测试和质量工具等。
斯文的程序
2019/11/08
1.1K0
JVM学习.05 JVM常见的排障和调优
前面介绍了JVM相关的内存和线程相关的技术。对于JVM也算有了一个比较系统、完整的理论基础。理论总是作为指导实践的工具,但是从理论到实践,总会遇到一些虚拟机相关问题,故障。所以还需要学习一些常用的JVM排障工具,和一些常见的调优手段。
有一只柴犬
2024/01/25
2410
JVM学习.05 JVM常见的排障和调优
JProfiler for Mac(Java开发分析软件)
JProfiler 11 mac版是一款Java分析工具,具有直观的图形界面,可以处理脱机或远程会话,您可以将JProfiler应用程序连接到您的IDE,以便能够配置本地会话而无需处理会话配置。此外,这款Java开发分析软件附带了各种应用程序服务器集成向导,可帮助您通过网络对Java应用程序进行配置。还包括离线分析功能:使用触发系统来处理分析,并将结果快照保存到磁盘。
Mac软件分享
2022/08/04
8490
JProfiler for Mac(Java开发分析软件)
JetBrains 2020 Java调查报告:中国开发者使用比例最高,Java 8最受欢迎
Java 语言于 1995 年由 Sun Microsystems 公司开发,距今已有 25 年的时间了。Java 是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程等特性,广泛应用于企业级 Web 应用开发和移动应用开发。在众多编程语言中,Java 语言始终保持了强劲的发展势头。
机器之心
2020/10/09
8000
JetBrains 2020 Java调查报告:中国开发者使用比例最高,Java 8最受欢迎
JVM-VisualVM:多合-故障处理工具
VisualVM(All-in-One Java Troubleshooting Tool)是功能最强大的运行监视和故障处理程序之一,曾经在很长一段时间内是Oracle官方主力发展的虚拟机故障处理工具。
逍遥壮士
2021/12/01
3840
JVM-VisualVM:多合-故障处理工具
使用 VisualVM 和 JProfiler 进行性能分析及调优
在我们开发大型 Java 应用程序的过程中,难免遇到内存泄露、性能瓶颈等问题,比如文件、网络、数据库的连接未释放,未优化的算法等。随着应用程序的持续运行,可能会造成整个系统运行效率下降,严重的则会造成系统崩溃。为了找出程序中隐藏的这些问题,在项目开发后期往往会使用性能分析工具来对应用程序的性能进行分析和优化。在本文中,我们主要介绍 VisualVM 和 JProfiler 这两款性能分析工具。
CG国斌
2020/06/22
3.5K0
使用 VisualVM 和 JProfiler 进行性能分析及调优
【性能优化】Jprofiler基础知识汇总
JProfiler 的内存视图部分可以提供动态的内存使用状况更新视图和显示关于内存分配状况信息的视图。所有的视图都有几个聚集层并且能够显示现有存在的对象和作为垃圾回收的对象。
Luga Lee
2022/03/25
8520
【性能优化】Jprofiler基础知识汇总
JProfiler 13 for Mac(Java开发分析工具)
JProfiler是一款专业的Java应用程序性能分析工具,可帮助开发人员识别和解决Java应用程序中的性能问题。JProfiler支持Java SE、Java EE和Android平台,提供了多种分析选项,包括CPU分析、内存分析和线程分析等。
用户10121095
2023/04/04
3980
相关推荐
Java 性能分析 5 大工具
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档