export命令
export CLASSPATH=.:CLASSPATH:xxx-1.0.0-SNAPSHOT.jar
jstack -l pid
解析:
daemon后台进程
prio=10 优先级是10
tid在内存中的物理地址
nid线程id 16进制
WAITING 线程状态,可以是RUNNING ...
先简单介绍下常见dump 内存的两种方式
XX:+HeapDumpOnOutOfMemoryError
jmap -dump:format=b,file=testdump.bin <pid>
jmap的常用命令:
jmap -histo:live pid 查看内存里面实例的内容以及数量
jmap heap pid 查看内存中每个代内存的占有率
常用名词解释:
Shallow size就是对象本身占用内存的大小,不包含对其他对象的引用,也就是对象头加成员变量(不是成员变量的值)的总和。
Retained size是该对象自己的shallow size,加上从该对象能直接或间接访问到对象的shallow size之和。
1.模拟堆内存溢出。
code:
import java.util.ArrayList; import java.util.List; public class TestOOM { public static void main(String[] args) throws InterruptedException { List list=new ArrayList(); OOM oom=new OOM(); Thread.sleep(20*1000); for(int i=0;i<15;i++){ // System.out.println(i); list.add(new OOM()); Thread.sleep(2*1000); } } } class OOM{ byte[] bytes=new byte[1024*1024*8]; }
2.模拟常量池溢出。
code:
import java.util.ArrayList; import java.util.List; public class OOM2 { public static void main(String[] args) throws InterruptedException { List list=new ArrayList(); Thread.sleep(10*1000); for(int i=0;i<10000000;i++){ list.add(String.valueOf(i).intern()); } } }
java -Xmx1020m -Xms1020m -XX:PermSize=50m -XX:MaxPermSize=50m -XX:+HeapDumpOnOutOfMemoryError OOM2
可以发现跑了一会,会出现OOM。
此时dump文件已经生成了就可以用MAT工具打开了。
mat分析详细截图下次再补充下吧。
参考一下文档:
http://www.blogjava.net/rosen/archive/2010/05/21/321575.html
http://www.blogjava.net/rosen/archive/2010/06/13/323522.html
相关推荐
本文将深入探讨JDK中的常用命令,这些命令对于任何Java开发者来说都是必不可少的知识点。通过理解并熟练运用这些命令,可以极大地提高开发效率。 1. **javac**:这是Java编译器,用于将源代码(.java文件)转换成可...
### JDK 1.5.0 命令大全解析 #### 1. `java.exe` - **概述**:`java.exe` 是 Java 运行时环境的核心组件之一,用于执行 `.class` 文件(即编译后的 Java 字节码)。 - **用法**: - `java [选项] 类名`:启动一个...
JDK调优命令是针对Java虚拟机性能调优的工具,可以用来监控和分析Java程序的运行状况。其中,Jinfo命令能够查看正在运行的Java程序的扩展参数、JVM参数以及Java系统属性,等同于调用System.getProperties()方法。而...
### JDK命令大全解析 #### 一、java.exe **功能:** 运行Java程序。 **说明:** `java.exe` 是Java开发工具包(JDK)的一部分,用于解释执行编译后的Java字节码(`.class` 文件)。它是Java编程语言的核心组成部分之...
本篇文章将详细介绍Java开发工具包(JDK)中的一些重要监控和故障处理工具,这些工具可以帮助开发者识别和解决生产环境中的内存溢出问题,进而提升应用程序的性能和稳定性。 首先,我们来了解JDK提供的几个监控和...
例如,若要在本地监控名为`Java2Demo`的应用,则可以使用以下命令启动该应用: ```shell JDK_HOME/bin/java -Dcom.sun.management.jmxremote -jar JDK_HOME/demo/jfc/Java2D/Java2Demo.jar ``` 这里`JDK_HOME`是指...
此命令可以列出云端仓库中所有包含“jdk”的软件包名称,帮助用户了解当前可安装的不同版本的JDK。 ##### 2. 安装JDK 1.8 ```bash yum install -y java-1.8.0-openjdk ``` 这里选择了JDK 1.8进行安装,`-y`参数表示...
在实际开发工作中,我们还需要关注JDK的内存配置、JVM参数调整、性能监控等方面,这些都是Java开发中的重要知识点。此外,理解JDK的更新周期和版本策略,比如Oracle JDK与OpenJDK的区别,也能帮助我们更好地规划和...
这个名为"monitor_tuning_Demo"的压缩包文件,很显然是为了教授如何使用JDK提供的监控工具以及进行JVM(Java虚拟机)的调优。在实际应用中,这些工具和技术对于优化Java应用性能、定位问题以及确保系统健康运行至关...
同时,利用JDK17提供的工具,如`javadoc`生成API文档,`jconsole`监控Java应用性能,`jmap`分析堆内存,等等。 总之,JDK17作为Java生态系统的一部分,不仅提供了强大的开发工具,还带来了许多创新特性,旨在提升...
此外,JDK还提供了许多其他工具,如`javadoc`用于生成API文档,`jarsigner`用于签名和验证JAR文件,以及`jconsole`用于监控Java应用程序的性能等。 **JDK版本的选择** 虽然JDK 1.7在某些场景下仍然是必需的,但...
3. 设置环境变量,包括`JAVA_HOME`指向JDK的安装目录,以及`PATH`包含`%JAVA_HOME%\bin`,确保系统可以找到Java命令。 4. 验证安装成功,通过命令行输入`java -version`,显示Java 7的信息。 **三、JDK 1.7的使用**...
在安装JDK 8u261后,开发者可以使用`javac`命令进行Java源代码的编译,`java`命令来运行Java程序,`jar`工具来创建和管理Java档案文件,以及其他如`jconsole`或`jvisualvm`等工具进行性能监控和分析。这个版本的JDK...
此外,JDK还包含`jar`工具,用于打包和管理Java类库,以及`jconsole`这样的系统监控工具,可以实时查看Java应用程序的资源使用情况。 对于初学者,理解JDK的这些基本工具及其用法是学习Java编程的基础。对于经验...
6. **性能调优**:利用JDK自带的JVisualVM或JProfiler等工具进行性能监控和分析。 **四、JDK 11.0.2 的持续学习与进阶** 深入学习JDK 11.0.2,不仅要理解其新特性,还需掌握如何有效地利用这些特性来编写高质量的...
2. 使用解压命令(如`unzip IBMJDK16linux.zip`)解压缩文件。 3. 将解压后的目录移动到适当的位置,如`/usr/java`。 4. 配置环境变量,如`JAVA_HOME`、`PATH`和`CLASSPATH`,使其指向IBM JDK 1.6的安装路径。 5. ...
- **环境变量设置**:设置`JAVA_HOME`指向JDK的安装路径,将`%JAVA_HOME%\bin`添加到`PATH`环境变量,确保系统能够找到Java命令。 - **验证安装**:通过运行`java -version`和`javac -version`命令,检查Java运行...
在Windows环境下,安装JDK 8u112之后,开发者还需要设置环境变量,如JAVA_HOME指向JDK的安装目录,PATH包含%JAVA_HOME%\bin,这样命令行就能识别并执行JDK的相关命令。完成这些配置后,开发者就可以开始编写、编译和...
3. **验证安装**: 最后,通过运行`java -version`和`javac -version`命令来确认JDK是否已正确安装。 一旦安装完成,开发者就可以开始使用JDK 1.8进行Java编程了。这包括编写、编译和运行Java源代码,使用Java Debug...
3. **使用JDK工具**:JDK11附带了众多开发工具,如`javadoc`用于生成API文档,`jconsole`用于监控Java应用的性能,`jmap`用于查看堆内存状况等。 **总结** JDK11 Windows Zip解压缩版是开发者在Windows环境下快速...