随笔分类 -  JVM

摘要:引言 在Java应用程序的开发和维护过程中,了解和分析Java堆信息是一项重要的任务。本文将介绍如何获取Java堆信息的不同方法,并提供一些分析堆信息的实用技巧。 获取Java堆信息的方法 Java虚拟机(JVM)工具: 使用jcmd命令:在命令行中运行jcmd <pid> GC.heap_info 阅读全文
posted @ 2023-08-29 18:42 查拉图斯特拉面条 阅读(598) 评论(2) 推荐(4) 编辑
摘要:在设置 -Xmx 参数时,建议将其设置为系统内存的一定比例。具体的比例需要根据应用程序的特点、系统资源的限制等各种因素进行综合考虑。 如果将 -Xmx 参数设置得过小,可能会导致 JVM 分配的堆内存不足以容纳应用程序需要的对象,从而引起 OutOfMemoryError 错误。如果将 -Xmx 参 阅读全文
posted @ 2023-06-28 19:02 查拉图斯特拉面条 阅读(346) 评论(0) 推荐(1) 编辑
摘要:将 -Xms 参数设置为与 -Xmx 参数相等,相比于将 -Xms 参数设置为 -Xmx 参数的一半,具有以下优势: 1. 程序启动时间更短 当将 -Xms 参数设置为与 -Xmx 参数相等时,JVM 在启动时会分配最大内存空间,这样可以避免因为动态调整内存空间带来的时间开销。所以,相较于将 -Xm 阅读全文
posted @ 2023-06-27 18:43 查拉图斯特拉面条 阅读(312) 评论(0) 推荐(0) 编辑
摘要:在 Java 虚拟机(JVM)中,-Xms 和 -Xmx 都是用来设置 JVM 堆内存大小的参数。其中,-Xms 用于设置 JVM 启动时分配的初始堆内存大小,而 -Xmx 用于设置 JVM 堆内存的最大可用空间。默认情况下,-Xms参数的值为物理内存的1/64,-Xmx参数的值为物理内存的1/4。 阅读全文
posted @ 2023-06-27 12:33 查拉图斯特拉面条 阅读(1458) 评论(0) 推荐(1) 编辑
摘要:jstat 是 Java 自带的一个命令行工具,用于监控 JVM 运行时的状态信息。它可以通过以下格式的命令来调用: jstat [option] <vmid> [<interval> [<count>]] 其中,option 表示需要查询的信息类型,如 -gc, -class, -compiler 阅读全文
posted @ 2023-06-19 19:20 查拉图斯特拉面条 阅读(335) 评论(0) 推荐(1) 编辑
摘要:线程转储(Thread Dump)就是JVM中所有线程状态信息的一次快照。 线程转储一般使用文本格式, 可以将其保存到文本文件中, 然后人工查看和分析, 或者使用工具/API自动分析。我们一般使用JDK自带的命令行工具来获取Java应用程序的线程转储。 1. JSTACK jstack 是JDK内置 阅读全文
posted @ 2023-05-24 18:09 查拉图斯特拉面条 阅读(66) 评论(0) 推荐(1) 编辑
摘要:堆转储是 JVM 中特定时刻内存中的所有对象的快照。它们对于解决内存泄漏问题并优化 Java 应用程序中的内存使用情况非常有用。 堆转储通常以二进制格式 hprof 文件存储。我们可以使用 jhat 或 JVisualVM 等工具打开和分析这些文件。 下面介绍两种堆转储的方式: 1. JCMD jc 阅读全文
posted @ 2022-07-31 23:47 查拉图斯特拉面条 阅读(240) 评论(0) 推荐(0) 编辑