首页 > 编程语言 >Java性能分析工具

Java性能分析工具

时间:2022-10-30 10:05:14浏览次数:37  
标签:分析 Java Spring 性能 GC 内存 工具


概述

工欲善其事必先利其器,在Java开源世界里面,有无以计数的工具。

清单

排名靠前的使用得多一些。

MAT

Eclipse Memory Analyzer,Eclipse内存分析器是一个可以帮助你找到内存泄漏和减少内存损耗的Java堆分析器。它更适合作为一个分析Java堆栈和计算大小的工具集,也可以用于监测内存泄漏和反模式带来的内存损耗。

MAT使用笔记待更新。

GC Viewer

开源工具,可以对​​vmflags -verboase:gc​​​和​​-Xloggc:​​等Java VM选项产生的数据进行可视化分析。GC Viewer可以用于计算GC(垃圾回收)相关的性能数据记录,包括吞吐、累积暂停、最长时间的暂停等。当你想要通过改变生成大小和设置初始堆大小来调整某个特定应用的GC时,它尤其有用。

VisualVM

遵循模块化的架构思想。这意味着可以通过插件方便的进行扩展。允许你获取Java程序的详细信息,只要它在一个JVM上运行即可。生成的数据可以由JDK工具生成和读取,多个Java程序的所有数据和信息都可以很方便地进行查看,包括本地和远程的运行程序。同时可以保存JVM软件的数据快照,把数据保存在本地,方便以后进行查看或者和其他人一起分享。可以进行CPU性能分析、内存性能分析,进行GC(可以进行强制调用GC)、保存快照、类和方法消耗资源等。

参考​​jVisualVm监控实战​​

maintainJ

JProfiler

一个很好的Java性能分析工具。JProfiler集CPU、内存和线程性能分析于一体,可以用于分析性能瓶颈、内存泄漏、CPU 负载和解决线程相关的问题,并且支持本地性能分析(分析与JProfiler软件安装在同一台机的应用)和远程性能分析(它可以分析远程没有安装 JProfiler机器上的应用)

YourKit

安装时有一个选项,可以安装一个插件到我的IDE。安装后,运行应用程序,使用该插件,它会自动连接到YourKit。它有一个漂亮的用户界面可以查看到内存和CPU的监测,同时也可以看到请求的执行路径。

JProbe

安装并不是直接完成,需要对它进行配置。它采用类似JProfiler一样的设置。它会在你的Tomcat目录中生成启动脚本。可以通过脚本启动服务器并监听会话。它的界面包含有按钮和表格,其中可以看到内存的使用,但无法在进程中找到执行路径。

Spring Insight

听到TC Server有Spring Insight监控界面,安装完成后,并设置成TC Server的开发者版,然后部署应用程序在TC Server上。我查看Insight界面,它可以很好的监视类和方法,并能看到完成这个方法用了多少时间。我还能看到输入参数值,以及返回值。由于我的应用程序是基于Spring的,Spring Insight能够提供非常有用的数据。TC Server插件在IDE上的配置与Tomcat的配置类似。Spring Source工具套件就自带Spring Insight。

Profiler4J

一个专注于CPU性能分析的工具,友好的用户界面,支持远程性能分析,及动态修改配置。Profiler4j值得关注的特性有:基于动态字节码增强方式,表明它不需要任何本地的库和外部可执行文件支持。它完全由Java编写,可提供图形化的调用图形信息、调用树结构、内存监控和类列表,支持细粒度配置文件。

Java Interactive Profiler

JIP,一个用Java开发的高性能、低损耗性能分析器。使用JIP的开发者可以在VM运行时开启和关闭性能分析,并且可以过滤类和包、控制输出。


标签:分析,Java,Spring,性能,GC,内存,工具
From: https://blog.51cto.com/u_15851118/5807191

相关文章

  • Java String加解密踩坑
    背景最近在做一款数据产品,涉及到数据源。既然是数据源,肯定有URL(含port信息),用户名和密码。页面上面,虽然有前端组件mask处理,不能复制出来。但是对于稍微懂点技术的同学,都知道......
  • 数据库表结构文档生成工具
    背景之前在一家小公司工作时,由于没有完善的应用发布流程,包括配置发布平台,和数据库发布系统,导致测试环境(实际上就是一个IP撑起来的简简单单的服务节点)正常的逻辑,到生产环境(3......
  • 用SQL查Linux日志工具-q
    概述Linux文本查找命令不要太多:tail、head、cat、sed、more、less、awk,但对新手不友好。q是一个命令行工具,允许在任意文件或查询结果,如​​ps-ef​​​查询进程命令的结果......
  • 宏观调控的目标及工具手段
    经济学分为宏观经济学和微观经济学,通俗来讲微观是研究个体行为的,宏观是研究整体的。大萧条时期,宏观经济学之父凯恩斯,采用总量分析来研究收入、消费、就业、通胀、投资等的......
  • Javaweb基础复习------Filter相关应用+登录验证案例的使用
    Filter(过滤器)基本步骤:1、定义类,实现Filter接口,并重写其所有方法2、配置Filter拦截资源的路径,在类上定义2WebFilter注解(WebFilter配置的路径,是拦截资源的路径)3、在d......
  • Java多线程(6):锁与AQS(中)
    您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~ Java中的AQS(AbstractQueuedSynchronizer,抽象队列同步器)是用来实现锁及其他同步功能组件的Java底层技术基础,java.util.co......
  • Golang 基于 flag 库实现一个命令行工具
     Golang标准库中的flag库提供了解析命令行选项的能力,我们可以基于此来开发命令行工具。 假设我们想做一个命令行工具,我们通过参数提供【城市】,它自动能够返回当前......
  • Java数组之合并方法(世界上最简单的方法)
    转自:http://www.java265.com/JavaJingYan/202204/16510261483156.html数组是日常开发中常用的容器,日常开发中,我们通常会定义多个数组,那么有时需要进行两个数组的合并操......
  • how to debug in java
    jdbnormalusages1.compileperiodjavac-g,addcomplieinformationmikeli@dell-pc:~/code/algo_java$javac-gDemToBin3.java  2.debugclassinonewindow......
  • Java Web
    javaweb是指,所有通过java语言编写可以通过浏览器访问的程序的总称,叫javaweb。javaweb是基于请求和影响来开发的。请求是指客户端给服务器发送的数,请求叫Request。......