点击了“Details”链接之后,除了在上一页看到的描述外,还有Shortest Paths To the Accumulation Point和Accumulated Objects by Class in Dominator Tree 部分,这里说明了从GC root到聚集点的最短路径,以及完整的reference chain。
我们可以使用命令catjstack.log | grep "java.lang.Thread.State" | sort -nr | uniq -c来对 jstack 的状态有一个整体的把握,如果 WAITING 之类的特别多,那么多半是有问题啦。
可以想象到,这个程序会对 GC 造成压力:修改 pom.xml,配置 spring-boot-maven-plugin 插件打包的 Java 程序的 main 方法类:然后使用 java -jar 启动进程,设置 JVM 参数,让堆最小最大都是 1GB:完成这些准备工作后,我们就可以使用 JDK 提供的工具,来观察分析这个测试程序了。
6.3 其他收集器适用场景4.1.2 如何产生dump文件4.1.2.1 JVM的配置文件中配置4.1.2.3 第三方可视化工具生成4.5 对比调优前后指标差异5.8.1 如何启动JConsole5.8.2 如何设置JAVA程序运行时可以被JConsolse连接分析6.4.1 -XX:+PrintFlagsInitial、-XX:+PrintFlagsFinal6.4.2 -XX:+PrintCommandLineFlags6.4.4 -XX:CMSFullGCsBeforeCompaction6.4.5 -XX:HeapDumpPath6.4.6 -XX:OnOutOfMemoryError6.4.7 XX:InitialCodeCacheSize6.4.8 -XX:+UseCodeCacheFlushing。