您的位置:首页 > 财经 > 金融 > 平面设计真实工资_福建建设厅官网_长尾词seo排名优化_如何免费推广自己的网站

平面设计真实工资_福建建设厅官网_长尾词seo排名优化_如何免费推广自己的网站

2024/11/19 2:32:27 来源:https://blog.csdn.net/zhzjn/article/details/142926928  浏览:    关键词:平面设计真实工资_福建建设厅官网_长尾词seo排名优化_如何免费推广自己的网站
平面设计真实工资_福建建设厅官网_长尾词seo排名优化_如何免费推广自己的网站

1. jps:虚拟机进程状况工具方式

首先,我们来看 jps 这个工具,它可以列出当前正在运行的 Java 虚拟机进程,jps 可以显示虚拟机执行的主类以及进程的虚拟机 ID“JVMID”。jps 是我们使用频率最高的工具,其他工具都需要依赖 jps 查询到的 JVMID 来进行下一步操作。下面我们看一下 jps 的命令格式



我们来看一下 jps -l 这个例子,前一列是查询到的 pid,后一列是主类的全名。



下面的列表是 jps 一些选项的作用。



2. jstat:虚拟机统计信息监视工具

jstat提供了运行中的JVM实例的性能数据,包括类加载、内存、垃圾回收等统计信息。



其中 interval 是查询的间隔时间,count 是查询的次数。我们来看一下jstat -gc 16400 200 3这个例子,代表每 200 毫秒执行一次 jstat -gc 命令,连续执行 3 次。



我们再来了解一下查询出的这几个参数的含义:

  • S0、S1:Survivor0、Survivor1 幸存者区

  • E:新生代区

  • O:老年区

  • YGC:MinorGC

  • YGCT:MinorGC 的耗时

  • FGC:FullGC

  • FGCT:FullGC 总耗时

  • GCT:GCTime,意思是 GC 总耗时



3. jinfo:Java 配置信息工具

它可以用来查看和调整 JVM 的配置参数。使用 jps 的-v选项可以查看 JVM 启动时显式指定的参数,而 jinfo 的-flag选项可以帮助我们查看那些使用了默认值的参数。更强大的是,jinfo 甚至可以在运行时修改这些参数。jinfo 的命令格式如下:



我们再来看一下 jinfo -flag 的例子,查询 MaxHeapSize 参数的值:



4. jmap:Java 内存映像工具

jmap可以用来生成堆内存快照(heap dump),分析内存使用情况,查找内存泄漏。jmap 不仅可以获取 dump 文件,还可以查询堆空间的使用情况和垃圾收集器的信息。jmap 的命令格式如下:

1.内存快照

2.内存使用详情





看完上述 option 选项的作用,

4.1 jmap 生成一个 dump 文件的例子

jmap -dump:format=b,file=aaa.bin 16400



分析堆转储文件

使用MAT(Memory Analyzer Tool)或其他堆分析工具打开aaa.bin文件,分析内存使用情况和潜在的内存泄漏。

https://blog.csdn.net/beiback/article/details/138200448

4.2 jmap -heap 堆详细信息



5. jhat:虚拟机堆转储快照分析工具

jmap 有一个搭档叫 jhat,jhat 可以分析 jmap 生成的堆转储快照。jhat 生成的 dump 文件结果报告可以直接在浏览器中打开。不过 jhat 的分析功能相对来说比较简单,因此我们通常不会直接使用 jhat 来分析 dump 文件,此外要注意分析工作是一个耗时耗力的过程,所以不要在生产环境服务器上分析 dump 文件。后续我们会介绍更专业的分析工具,可以实现比 jhat 更专业的分析功能。

我们先来看一下使用 jhat 分析 dump 文件的例子:



根据提示在浏览器中输入 http://localhost:7000 就可以看到分析结果。



通过上述例子,我们可以看到分析结果以包为单位来分组显示,每个包都可以点进去看到更详细的分析,从而看到各种对象的空间占比,排查问题还是很方便的。你也可以自己尝试一下

6. jstack:java 堆栈跟踪工具

jstack是一个命令行工具,可以生成Java线程的快照,用于分析线程的状态和死锁问题。

jstack 用于生成虚拟机当前时刻的线程快照,也就是“线程 dump”文件。线程快照的意思就是线程当前的堆栈信息,生成线程快照的主要目的通常是为了定位线程阻塞的原因,如死循环、死锁、IO 资源问题等。如果发生线程阻塞,我们可以使用 jstack 来查看线程堆栈,就可以清晰地看到这些线程在后台执行什么任务、wait 什么 IO 资源。

我们来看一下 jstack 的命令格式:



我们使用 jstack -l 16400 查看线程堆栈。

https://codeup.aliyun.com/62858d45487c500c27f5aab5/210/mianshi-root/blob/master/JVM/src/main/java/com/example/jvm/VisualVMDemo.java



下面的列表是 jstack 具体选项的作用,你可以自己在服务上敲一下命令试试。



总结

JVM 自带的一系列常用工具,每个工具都有其独特的功能和用途。在遇到线上问题时,我们可以先使用 jps 查询进程的虚拟机 ID,如果是线程问题可以使用 jstack,如果是内存问题可以使用 jmap 和 jhat,而 jstat 和 jinfo 则可以帮助我们在问题发生前监控内存的使用情况和配置信息。当然,这些工具的基本使用方法还有很多细节,需要通过实践来完全掌握。





版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com