几乎所有的资料上说到打印JVM GC log的时候都会推荐一个参数: -XX:+PrintGCTimeStamps, 可该选项打印的是JVM以启动时间为基准的相对时间,对于troubleshooting来说非常困难。早在07年的时候就有人提出来并且早已fix,用法是使用 PrintGCDateStamps 代替PrintGCTimeStamps,打印出来的就是真实的日期了
示例如下:
haitao-yao@haitaoyao-laptop:/data/develop/yed-3.7$ java -jar -XX:+PrintGCDateStamps -XX:+PrintGCDetails -verbose:gc yed.jar
2011-05-11T17:49:43.959+0800: [GC [PSYoungGen: 15360K->2464K(17856K)] 15360K->8417K(58688K), 0.0260480 secs] [Times: user=0.05 sys=0.00, real=0.02 secs]
2011-05-11T17:49:44.612+0800: [GC [PSYoungGen: 17824K->2484K(33216K)] 23777K->10471K(74048K), 0.0156130 secs] [Times: user=0.03 sys=0.00, real=0.02 secs]
2011-05-11T17:49:44.724+0800: [GC [PSYoungGen: 33204K->2466K(33216K)] 41191K->10509K(74048K), 0.0088430 secs] [Times: user=0.02 sys=0.00, real=0.01 secs]
2011-05-11T17:49:44.771+0800: [GC [PSYoungGen: 33186K->2466K(63936K)] 41229K->10509K(104768K), 0.0069690 secs] [Times: user=0.02 sys=0.00, real=0.01 secs]
2011-05-11T17:49:44.911+0800: [GC [PSYoungGen: 63906K->2482K(63936K)] 71949K->10525K(104768K), 0.0071580 secs] [Times: user=0.02 sys=0.00, real=0.01 secs]
2011-05-11T17:49:47.282+0800: [GC [PSYoungGen: 63922K->8765K(130048K)] 71965K->16807K(170880K), 0.0409860 secs] [Times: user=0.07 sys=0.01, real=0.04 secs]
分享到:
相关推荐
"jvmgc日志分析工具"专为解析和可视化JVM生成的GC日志而设计,帮助开发者识别内存瓶颈,调整内存设置,以及诊断可能的性能问题。 GC日志是JVM在运行过程中记录的关于垃圾收集活动的详细信息,包括垃圾收集的起始...
JVM 输出 GC 日志导致 JVM 卡住是一个常见的问题,尤其是在高并发和高性能应用中。这个问题的根源在于 JVM 的垃圾回收机制(Garbage Collection,GC),它会在 JVM 运行时周期性地进行垃圾回收,以释放内存空间。...
通过这些工具,我们可以观察GC日志,分析GC性能,找出可能的问题。 7. **垃圾收集器组合**:JDK 11引入了ZGC(Z Garbage Collector),这是一种低延迟的GC,目标是在大堆上实现几乎无暂停时间的垃圾收集。JDK 14...
在开发和优化Java应用程序时,理解JVM内存日志至关重要,因为它可以帮助我们诊断性能问题,例如内存泄漏或过度的垃圾收集。`jmap`是Java的一个命令行工具,用于获取堆内存的详细信息,包括堆dump,这对于分析JVM内存...
1. 在开发和测试环境下,可以通过配置JVM参数来输出GC日志。例如,添加`-XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCApplicationStoppedTime`参数,可以详细记录GC事件,包括简要信息、...
5. **GC调优**:包括如何分析GC日志,理解GC停顿(Stop-the-World)事件,以及如何通过调整JVM参数来改善系统性能,如设置堆大小、新生代与老年代的比例、存活代的晋升策略等。 6. **性能监控与诊断工具**:如...
5. **内存泄漏检测**:定期检查是否存在内存泄漏,通过分析GC日志或者使用专门的检测工具,定位并修复可能导致内存泄漏的问题。 6. **并行与并发调整**:根据系统硬件资源调整并行GC的线程数(`-XX:...
它提供了CPU和内存使用情况的实时视图,还可以分析线程、监视类加载、JVM配置、GC日志等。通过JavaVisualVM.rar文件,用户可以安装并使用这个强大的工具。 另一个是com-sun-tools-visualvm-modules-visualgc.rar,...
- **详细的GC日志**:IBM JVM支持输出详细的GC日志信息,帮助开发者监控和调试GC行为。 - GC日志可以包括从`System.gc()`调用触发的收集、分配失败时的收集、堆扩展或收缩时的收集等信息。 #### 六、消息与命令行...
调优主要涉及选择合适的垃圾收集器,调整堆大小和新生代比例,以及设置GC日志,通过监控GC行为来优化性能。 总结,理解并掌握JVM参数和GC机制是Java开发中的重要技能。通过合理配置JVM参数,我们可以有效控制内存...
诊断这类问题时,首先要确认是否选择了合适的GC策略,其次要检查堆内存的大小设置是否恰当,最后还要分析具体的应用行为和垃圾回收日志,识别出是哪种类型的问题,比如内存泄露、对象分配过快等。 6. 使用IBM JDK的...
在GC监控方面,除了使用JMX参数外,还可以使用-Xloggc:文件参数来记录GC日志,并通过-XX:+PrintGCDetails等参数打印GC的详细信息。 优化建议包括合理设置堆内存大小,选择合适的垃圾回收器,调整新生代与老年代的...
G1 GC是Oracle JVM从Java 6 Update 24引入的一种新一代垃圾收集器,它的设计目标是实现可预测的暂停时间模型,即在垃圾收集过程中,能预先设定暂停时间,保证应用的响应速度。G1 GC将整个堆空间划分为多个大小相等的...
2. **GC日志分析**:通过分析GC日志,了解GC行为,找出性能瓶颈。 3. **并行与并发设置**:调整并行GC线程数和并发GC策略,优化性能。 4. **对象存活率预估**:通过调整Survivor区比例,减少Full GC的发生。 5. **...
虽然功能叫hpjmeter简单,界面也不咋地 不过容错性要比hpjmeter强很多,虽然快照中所有性能指标都挤在一起,但是很直观 总体来说比较强悍,特收金币一枚...
对gc日志进行统计分析,使用命令:java -jar gcviewer-1.3x.jar gc.log summary.csv [chart.png] [-t PLAIN|CSV|CSV_TS|SIMPLE|SUMMARY]
使用`-verbose:gc`、`-XX:+PrintGCDetails`以及`-Xloggc:gc.log`等选项可以输出详细的GC日志信息。 例如,串行GC的日志输出如下: ``` [GC [DefNew: 11509K->1138K(14336K), 0.0110060 secs] 11509K->1138K(38912K...
此外,监控GC日志,分析GC行为,以及使用适当的GC算法(如CMS、G1或ZGC)也是优化过程中的关键步骤。通过这些实践,开发者能够确保Java应用程序在运行时具有良好的内存管理和高效的资源利用率。
此外,监控GC日志、使用工具(如VisualVM、JProfiler)分析GC行为也是调优过程中的重要步骤。 总结,JVM内核的深入理解和GC的精通对于Java开发者至关重要。通过学习“深入JVM内核—原理、诊断与优化视频教程”,...