加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

Java 性能瓶颈分析工具 你知道几个?

发布时间:2019-05-11 23:42:37 所属栏目:建站 来源:程序猿说
导读:0. Introduction Java 机能优化分为许多个方面,如体系优化、算法优化、代码优化等。代码优化是指开拓职员在研发、测试进程中行使机能瓶颈说明器材快速定位出因为编码存在的机能瓶颈题目并一连举办优化。一种很常见的场景是测试同窗在对处事举办压测时,无
副问题[/!--empirenews.page--]

Java 机能瓶颈说明器材 你知道几个?

0. Introduction

Java 机能优化分为许多个方面,如体系优化、算法优化、代码优化等。代码优化是指开拓职员在研发、测试进程中行使机能瓶颈说明器材快速定位出因为编码存在的机能瓶颈题目并一连举办优化。一种很常见的场景是测试同窗在对处事举办压测时,无论怎么增进并发应用的 TPS 一向保持在某个值举办阁下颠簸,这个时辰要怎么排查呢。为了可以精确得到运行进程中措施的机能数据,机能调优职员和开拓者必要行使机能说明(profiling)帮助器材从全局视角来查察体系的运行状况。本文首要先容通过纯熟把握 JMC、Tprofiler、JProfiler 等各类机能瓶颈说明器材,进而进步定位机能瓶颈、体系妨碍排查手段。

1. Java Mission Control

JMC(Java 使命节制)是 Java 7u40 新增进的机能监控器材。今朝,Oracle Java 官方在本年 5 月份已经发布 Java Mission Control(JMC)的源代码已正式开源,此举获得了 Java 开拓社区的高度赞赏。

JMC 源码地点: JMC source code

Java 机能瓶颈说明器材

JMC 器材首要由三个组件组成:Java 历程赏识器、JMX 节制台和 Java Flight 记录器等。

Java 历程赏识器可以或许操作 Java 自带的 JDP 协议自动发明当地可能长途正在行使的 Java 历程;

JMX 节制台通过 JMX 接口打点监控 JDK,它可以或许查察堆内存行使环境、CPU 负载等;

Java Flight Recorder 是一个内置在 JDK 中的监测和变乱网络框架。网络的变乱包罗:磁盘 IO、GC、线程 sleep、线程 wait、Socket read/write 等。

下图表现了 JMC 启动后当前呆板正在运行中的全部 Java 历程,选择一个历程举办机能监控。

假如行使的操纵体系是 Mac 而且 JDK 版本为 1.8,启动 JMC 之后也许会发明操纵界面被冷冻住了你没步伐举办任何操纵。发生这种征象的缘故起因是 JDK 在进级进程中存在一个bug,详细办理方案可以参考:

  1. Jdk1.8 bug 

1.1 JFR 内存视图

JFR 模块包括一样平常信息、内存、代码、线程、IO、体系、变乱等视图。个中,JFR 内存视图网络的信息很是富厚,可以得到内测行使量、GC 设置、GC 时刻、工具统计时刻等统计信息。下图展示了当前 JVM 历程 GC 时刻的统计信息。

Java 机能瓶颈说明器材

1.2 JFR 代码视图

JFR 代码视图可以很轻易统计出全部 Java 包占 JVM 历程全部要领挪用的总时长。该视图很利便查察热门类、热门要领和热门包的挪用次数、所占比例等。JFR 还提供了 I/O 视图、线程视图、体系视图从差异角度更好说明当前历程运行环境。

1.3 启动 JFR

Java 航行记录器(JFR)是一种用于网络关于正在运行的 Java 应用措施的诊断和说明数据的器材。它集成到 Java 假造机(JVM)中,险些不会造成机能开销,因此纵然在负载很是大的出产情形中也可以行使它。

  • 起首,JVM 历程开启 JFR 成果必要在 JVM 启动参数(Jvm start flags)中增进两个参数
  1. -XX:+UnlockCommercialFeatures -XX:+FlightRecorder 

默认环境下,JFR 在 JVM 中是禁用的。要启用 JFR,必需行使 - XX:+FlightRecorder 选项启动 Java 应用措施。由于 JFR 是一个贸易特征,仅在基于 Java 平台、尺度版(Oracle Java SE Advanced 和 Oracle Java SE Suite)的贸易包中可用,以是您还必需行使 - XX:+UnlockCommercialFeatures 选项启用贸易特征。

虽然,也可以设置 JMC 举办长途监控,在启动 Java 措施时加上如下参数:

  1. -Dcom.sun.management.jmxremote  
  2. -Dcom.sun.management.jmxremote.port=18090  
  3. -Dcom.sun.management.jmxremote.ssl=false  
  4. -Dcom.sun.management.jmxremote.authenticate=false  
  5. -Djava.rmi.server.hostname=192.168.149.184  
  6. -XX:+UnlockCommercialFeatures  
  7. -XX:+FlightRecorder 

应承其余呆板监控该措施,必需指定 -Djava.rmi.server.hostname=,假如不指定该设置,那么就只能在本机监控该措施。

节制监控的授权(让特定的用户才气毗连 JMX 处事),必要配置

  1. -Dcom.sun.management.jmxremote.authenticate=true 

假如配置为 false 则不必要授权。

授权必要指定两个文件:jmxremote.password 和 jmxremote.access,password 文件首要是设置用户名和暗码。

  • 其次,选中必要举办机能说明的历程,点击右键选择开起程行记录器:

1.4 JFR 变乱

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读