项目需要,将gc的监视方法,和gc log的分析工具整理一下,
这些工具不会帮你确定Out Of Memory的具体位置, 但可以帮你确定系统是否发生了OOM
项目中有一个很可疑的函数,我们如下面的方法跑了一下,发现他确实存在内存泄漏(问题解决后另做总结).
问题一 让jvm输出log
打印jvm的gc log, 需要如下配置jvm启动参数:
方法1:
-Xloggc:D:/gc.log
方法2
-Xloggc:D:/gc.log -XX:+PrintGCTimeStamps -XX:-PrintGCDetails -XX:+UseConcMarkSweepGC
这些jvm启动参数的意义参考这里:
the Java application launcher
如果你手头有一份chm的javadoc的话, 下面这个路径可以看到同样的一份:
Java 2 SE Documentation -> technotes -> tools -> windows -> java - the Java application launcher
当然,不同虚拟机需要加的参数可能不一致.例如网上说:
IBM:-Xverbosegc:file=filename 或 -Xverbosegclog:filename
HP :-Xverbosegc=filename
问题二 分析jvm的log
我现在用的是HPjmeter, 和HPjtune,收费的东西公司用不了, 没调查, 但目前这两个基本满足了我的需求.
网上有这么一篇blog: 用HPjmeter分析jvm的gc日志和heap dump
. 里面有各种工具的下载地址.
整理如下:
HPjmeter
下载:
ftp://ftp.hp.com/pub/gsy/HPjmeter_3.0.01.jar
ftp://ftp.hp.com/pub/gsy/hpjmeter_console_3.0.01.00_windows_setup.exe
ftp://ftp.hp.com/pub/gsy/hpjmeter_console_3.0.01.00_linux_setup.sh
HPjtune
下载:ftp://ftp.hp.com/pub/gsy
(支持目录方式浏览。)
这篇blog中还介绍了其他的一些gc分析工具,同时也给出了相应的下载地址, 分别是:
SAP Memory Analyzer(Eclipse插件), gcviewer, scimark2 benchmark
其中一个比较有用的链接是这里: http://www.javaperformancetuning.com/tools/
看名字便知道, 这个网站里面有关于性能调优的工具评测,tips,news等等.
其他
过程中看了江南白衣的两篇blog, 知道了原来"声明期短的,小的,immutable对象"对GC更友好的原因等等.
很好, 链接如下:
JDK5.0垃圾收集优化之--Don't Pause
编写对GC友好,又不泄漏的代码
分享到:
相关推荐
Java内存监视是优化Java应用程序性能的关键环节,尤其是在处理大规模数据或长时间...通过合理地使用内存监视工具和API,我们可以有效地管理和优化内存使用,避免性能问题和内存异常,从而确保Java应用程序的高效运行。
Java内存监视是优化Java应用程序性能的关键环节,尤其是在大型企业级应用中,理解...对于标签中的“Java源码-系统相关”,意味着这个工具或示例代码是与Java系统层面的操作紧密相关的,对理解Java内存机制有直接帮助。
这是一个专门用于解析Java线程和监视器转储的工具,它能够帮助开发者识别和解决多线程应用程序中的死锁、阻塞和其他并发问题。该工具可以分析线程堆栈信息,展示每个线程的状态,包括运行、等待、阻塞等,并提供详细...
首先,要理解Java监视和管理的范畴,需要关注Java平台中与性能相关的核心组件。Java虚拟机(Java Virtual Machine, JVM)是运行Java程序的基础,它包含了运行时数据区(Runtime Data Areas)、垃圾收集器(Garbage ...
例如,`jconsole`是一个图形化的监视工具,可以显示有关JVM的多种信息,包括内存使用情况、线程状态和类加载情况等。 对于程序内部的内存监控,Java提供了`java.lang.Runtime`类和`java.lang.management....
Jvisualvm是一款功能强大的多合一Java应用程序性能分析工具,集成了多种监视和诊断功能,包括CPU使用率、线程分析、内存检测等。而VisualGC的加入,使得内存监控更为直观和高效。 VisualGC的主要功能包括: 1. **...
- jconsole:图形化的JVM监视工具,可以实时监控GC、内存、线程等。 - jmap:用于生成堆转储文件,便于分析内存占用。 - jhat:基于堆转储文件的分析工具,可以查找内存泄漏等问题。 6. GC日志分析: - 识别...
Java虚拟机(JVM)是Java程序运行的基础,它的核心功能之一是垃圾收集(Garbage Collection, GC),这是Java语言的一大优势,但也因为其复杂性成为性能优化的关键环节。JVM调优通常涉及到内存配置、GC策略选择以及...
【标题】"hpjmeter jvm gc监控工具"是一个专门用于监视Java虚拟机(JVM)内存管理和垃圾收集(GC)行为的实用程序。HPjmeter由惠普公司开发,它提供了一种可视化的方式来理解JVM性能,特别是与垃圾收集相关的活动。...
jvisualvm是Java Development Kit(JDK)自带的一款多合一的性能分析工具,集成了诸如监视、诊断、采样、线程分析等功能,能够帮助开发者对运行中的Java应用程序进行实时监控和问题排查。 VisualGC是jvisualvm的一...
2. **使用内存分析工具**:Java提供了一些内置的诊断工具,例如JVisualVM,它可以监视JVM的内存使用情况,包括堆、栈和方法区的详细信息,以及GC的活动。此外,还有其他第三方工具,如MAT(Memory Analyzer Tool)和...
1. **JVM内置工具**:Java虚拟机(JVM)提供了多种内置的诊断工具,如`jps`(Java进程状态工具)、`jstat`(Java统计监视工具)、`jinfo`(配置信息工具)、`jmap`(映射工具)、`jhat`(堆分析工具)和`jstack`...
3. **性能监视**:CPU、GC、类加载、方法计数等性能指标的实时监控。 4. **采样剖析**:获取代码执行的热点,帮助优化性能。 5. **远程连接**:支持远程连接到其他运行中的Java应用进行监控。 二、VisualGC插件的...
本文将深入探讨几种常用的Java内存分析工具,它们的特点、使用方法以及如何利用这些工具有效地优化应用程序。 首先,我们要理解Java内存模型。Java虚拟机(JVM)有三个主要的内存区域:堆(Heap)、栈(Stack)和...
此外,JDK 1.6还包含了丰富的开发工具,如`javadoc`用于生成API文档,`jmap`用于分析堆内存,`jconsole`用于监视JVM性能等,这些工具对于调试和优化Java应用程序至关重要。 总的来说,JDK 1.6作为一款成熟的开发...
Java开发过程中,性能优化是至关重要的一步,而`jProfiler`正是这样一个强大的工具,专为Java开发者设计,用于深入分析应用程序的性能。标题中的“jprofiler java开发软件性能测试工具”表明,jProfiler是一个针对...
VisualGC是Java开发中用于监控和优化程序性能的重要工具,它是VisualVM的一部分。VisualVM是一款由Oracle提供的免费软件,它整合了多种JDK命令行工具,如jconsole、jmap、jhat等,为开发者提供了丰富的可视化界面,...
7. **JVM配置优化**:监控工具还能提供JVM参数的建议,帮助我们根据应用的需求调整JVM配置,如堆大小、新生代与老年代的比例、GC算法选择等,以达到最佳的性能表现。 总结来说,利用JVM监控工具,如VisualVM,我们...
### Java调试指南:详解关键调试工具与方法 #### 概述 本文档旨在提供一份全面且深入的Java应用问题调试指南。随着Java平台标准版(Java Platform, Standard Edition,简称Java SE)的发展与普及,软件开发者们面临...
在Java编程领域,监视Java程序的内存使用情况是一项至关重要的任务,这有助于优化程序性能,防止内存泄漏,以及确保程序的稳定运行。标题"java_jiankong.rar_java_java程序"提示我们,这个压缩包包含的资源是关于...