返回顶部
首页 > 资讯 > 精选 >JVM调优工具有哪些
  • 138
分享到

JVM调优工具有哪些

2023-06-17 11:06:12 138人浏览 泡泡鱼
摘要

这篇文章主要为大家展示了“JVM调优工具有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JVM调优工具有哪些”这篇文章吧。JVM调优工具Jconsole,jProfile,VisualVMJ

这篇文章主要为大家展示了“JVM调优工具有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JVM调优工具有哪些”这篇文章吧。

JVM调优工具

Jconsole,jProfile,VisualVM

Jconsole:jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。详细说明参考这里

JProfiler:商业软件,需要付费。功能强大。详细说明参考这里

VisualVM:JDK自带,功能强大,与JProfiler类似。推荐。

如何调优

观察内存释放情况、集合类检查、对象树

上面这些调优工具都提供了强大的功能,但是总的来说一般分为以下几类功能

堆信息查看

JVM调优工具有哪些

可查看堆空间大小分配(年轻代、年老代、持久代分配)提供即时的垃圾回收功能垃圾监控(长时间监控回收情况)

JVM调优工具有哪些

查看堆内类、对象信息查看:数量、类型等

JVM调优工具有哪些

对象引用情况查看

有了堆信息查看方面的功能,我们一般可以顺利解决以下问题:

--年老代年轻代大小划分是否合理

--内存泄漏

--垃圾回收算法设置是否合理

线程监控

JVM调优工具有哪些

线程信息监控:系统线程数量线程状态监控:各个线程都处在什么样的状态下

JVM调优工具有哪些

Dump线程详细信息:查看线程内部运行情况死检查

热点分析

JVM调优工具有哪些

CPU热点:检查系统哪些方法占用的大量CPU时间

内存热点:检查哪些对象在系统中数量***(一定时间内存活对象和销毁对象一起统计)

这两个东西对于系统优化很有帮助。我们可以根据找到的热点,有针对性的进行系统的瓶颈查找和进行系统优化,而不是漫无目的的进行所有代码的优化。

快  照

快照是系统运行到某一时刻的一个定格。在我们进行调优的时候,不可能用眼睛去跟踪所有系统变化,依赖快照功能,我们就可以进行系统两个不同运行时刻,对象(或类、线程等)的不同,以便快速找到问题

举例说,我要检查系统进行垃圾回收以后,是否还有该收回的对象被遗漏下来的了。那么,我可以在进行垃圾回收前后,分别进行一次堆情况的快照,然后对比两次快照的对象情况。

内存泄漏检查

内存泄漏是比较常见的问题,而且解决方法也比较通用,这里可以重点说一下,而线程、热点方面的问题则是具体问题具体分析了。

内存泄漏一般可以理解为系统资源(各方面的资源,堆、栈、线程等)在错误使用的情况下,导致使用完毕的资源无法回收(或没有回收),从而导致新的资源分配请求无法完成,引起系统错误。

内存泄漏对系统危害比较大,因为他可以直接导致系统的崩溃。

需要区别一下,内存泄漏和系统超负荷两者是有区别的,虽然可能导致的最终结果是一样的。内存泄漏是用完的资源没有回收引起错误,而系统超负荷则是系统确实没有那么多资源可以分配了(其他的资源都在使用)。

年老代堆空间被占满

异常:java.lang.OutOfMemoryError: Java heap space

说明:

JVM调优工具有哪些

这是最典型的内存泄漏方式,简单说就是所有堆空间都被无法回收的垃圾对象占满,虚拟机无法再在分配新空间。

如上图所示,这是非常典型的内存泄漏的垃圾回收情况图。所有峰值部分都是一次垃圾回收点,所有谷底部分表示是一次垃圾回收后剩余的内存。连接所有谷底的点,可以发现一条由底到高的线,这说明,随时间的推移,系统的堆空间被不断占满,最终会占满整个堆空间。因此可以初步认为系统内部可能有内存泄漏。(上面的图仅供示例,在实际情况下收集数据的时间需要更长,比如几个小时或者几天)

解  决:

这种方式解决起来也比较容易,一般就是根据垃圾回收前后情况对比,同时根据对象引用情况(常见的集合对象引用)分析,基本都可以找到泄漏点。

持久代被占满

异常:java.lang.OutOfMemoryError: PermGen space

说明:

Perm空间被占满。无法为新的class分配存储空间而引发的异常。这个异常以前是没有的,但是在Java反射大量使用的今天这个异常比较常见了。主要原因就是大量动态反射生成的类不断被加载,最终导致Perm区被占满。

更可怕的是,不同的classLoader即便使用了相同的类,但是都会对其进行加载,相当于同一个东西,如果有N个classLoader那么他将会被加载N次。因此,某些情况下,这个问题基本视为无解。当然,存在大量classLoader和大量反射类的情况其实也不多。

解  决:

-XX:MaxPermSize=16m

换用JDK。比如JRocket。

堆栈溢出

异常:java.lang.StackOverflowError

说明:这个就不多说了,一般就是递归没返回,或者循环调用造成

线程堆栈满

异常:Fatal: Stack size too small

说明:java中一个线程的空间大小是有限制的。JDK5.0以后这个值是1M。与这个线程相关的数据将会保存在其中。但是当线程空间满了以后,将会出现上面异常。

解决:增加线程栈大小。-Xss2m。但这个配置无法解决根本问题,还要看代码部分是否有造成泄漏的部分。

系统内存被占满

异常:java.lang.OutOfMemoryError: unable to create new native thread

说明:

这个异常是由于操作系统没有足够的资源来产生这个线程造成的。系统创建线程时,除了要在Java堆中分配内存外,操作系统本身也需要分配资源来创建线程。因此,当线程数量大到一定程度以后,堆中或许还有空间,但是操作系统分配不出资源来了,就出现这个异常了。

分配给Java虚拟机的内存愈多,系统剩余的资源就越少,因此,当系统内存固定时,分配给Java虚拟机的内存越多,那么,系统总共能够产生的线程也就越少,两者成反比的关系。同时,可以通过修改-Xss来减少分配给单个线程的空间,也可以增加系统总共内生产的线程数。

解  决:

重新设计系统减少线程数量。

线程数量不能减少的情况下,通过-Xss减小单个线程大小。以便能生产更多的线程。

以上是“JVM调优工具有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: JVM调优工具有哪些

本文链接: https://lsjlt.com/news/288641.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JVM调优工具有哪些
    这篇文章主要为大家展示了“JVM调优工具有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JVM调优工具有哪些”这篇文章吧。JVM调优工具Jconsole,jProfile,VisualVMJ...
    99+
    2023-06-17
  • JVM性能调优监控工具有哪些及其使用详解
    这篇文章将为大家详细讲解有关JVM性能调优监控工具有哪些及其使用详解,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 现实企业级Java开发中,有时候我们会碰到下面这些问题:OutO...
    99+
    2023-06-03
  • jvm GC调优工具怎么用
    这篇文章主要介绍“jvm GC调优工具怎么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“jvm GC调优工具怎么用”文章能帮助大家解决问题。JVM 在程序执行的过程中, 提供了GC行为的原生数据。...
    99+
    2023-06-29
  • JVM调优概念都有哪些
    今天给大家介绍一下JVM调优概念都有哪些。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。数据类型Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本...
    99+
    2023-06-17
  • Java JVM调优技能有哪些
    这篇文章主要介绍“Java JVM调优技能有哪些”,在日常操作中,相信很多人在Java JVM调优技能有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java JVM调优技能...
    99+
    2023-06-25
  • JVM内存调优有哪些技巧
    这篇文章给大家介绍JVM内存调优有哪些技巧,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。这里向大家描述一下JVM内存的设置原理及调优,默认的java虚拟机的大小比较小,在对大数据进行处理时java就会报错:java.l...
    99+
    2023-06-17
  • MySQL优化工具有哪些
    这篇文章将为大家详细讲解有关MySQL优化工具有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。对于正在运行的mysql性能如何?参数设置的是否合理?账号设置的是否存在...
    99+
    2024-04-02
  • javascript的调试工具有哪些
    这篇文章主要介绍了javascript的调试工具有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇javascript的调试工具有哪些文章都会有所收获,下面我们一起来看看吧。...
    99+
    2024-04-02
  • golang的调试工具有哪些
    golang的调试工具有:1.Delve,golang调试工具;2.GDB,Linux系统中的程序调试工具;3.debugcharts,golang可视化调试工具;golang的调试工具有以下几种DelveDelve是一个golang调试工...
    99+
    2024-04-02
  • JVM性能调优监控工具如何使用
    这篇文章主要讲解了“JVM性能调优监控工具如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JVM性能调优监控工具如何使用”吧!   现实企业级Jav...
    99+
    2024-04-02
  • 如何理解JVM调优参数、方法、工具
    这篇文章主要介绍“如何理解JVM调优参数、方法、工具”,在日常操作中,相信很多人在如何理解JVM调优参数、方法、工具问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何理解JVM调优参数、方法、工具”的疑惑有所...
    99+
    2023-06-15
  • Linux curl工具有哪些优点
    本篇内容主要讲解“Linux curl工具有哪些优点”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux curl工具有哪些优点”吧!Curl是Linux下一个很强大的http命令行工具,其...
    99+
    2023-06-13
  • windump工具有哪些优缺点
    Windump工具是Windows平台下的一个网络数据抓包工具,与Wireshark相似,它的优缺点如下: 优点: 界面友好:Wi...
    99+
    2024-03-04
    windump
  • MySQL优化工具AWR都有哪些
    本篇文章为大家展示了MySQL优化工具AWR都有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。对于正在运行的mysql,性能如何,...
    99+
    2024-04-02
  • 有哪些React性能优化工具
    这篇文章主要讲解了“有哪些React性能优化工具”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“有哪些React性能优化工具”吧! Profiler...
    99+
    2024-04-02
  • jvm垃圾回收之GC调优工具分析详解
    进行GC性能调优时, 需要明确了解, 当前的GC行为对系统和用户有多大的影响。有多种监控GC的工具和方法, 本章将逐一介绍常用的工具。 JVM 在程序执行的过程中, 提供了GC行为的...
    99+
    2024-04-02
  • SQL Server性能调优方法论及常用工具有哪些
    本篇文章给大家分享的是有关SQL Server性能调优方法论及常用工具有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。说起“调优”,可能会...
    99+
    2024-04-02
  • nodejs用哪些调试工具
    这篇文章将为大家详细讲解有关nodejs用哪些调试工具,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 调试node的工具:1、node-ins...
    99+
    2024-04-02
  • pt-osc工具的优缺点有哪些
    这篇文章主要介绍了pt-osc工具的优缺点有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 原理:根据原表...
    99+
    2024-04-02
  • 网页图片优化工具有哪些
    这篇文章给大家分享的是有关网页图片优化工具有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。TinyPNGTinyPNG 使用智能有损压缩技术,以减少 PNG 文件的大小。 Smush.itSmush...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作