#1. 前言
Java程序均运行在JVM之上,因此理解JVM是理解高性能Java程序所必须的。
2.大纲
- 这里是列表文本讲述JVM执行Java代码的机制
- 内存管理的机制
- 常用GC算法的介绍
- 集成环境下JVM配置
3.JVM执行Java代码的机制
3.1 编译:逃逸算法
3.2 加载:类加载机制
3.3 执行:内存分析
3.4 销毁:GC回收机制
4.内存管理的机制
5.常用GC算法的介绍
6.集成环境下JVM配置
6.1 纯Java环境JVM配置
java -Xms64m -Xmx256m Advice
对于单独的.class,可以用上述命令对Advice.class文件在运行时的jvm内存进行设置。
6.2 Eclipse环境下JVM配置
-
修改eclipse.ini文件
-
eclipse加载JDK是配置JVM参数
-
运行时在run configurations配置JVM参数
6.3 服务器环境下JVM配置
通常是修改应用容器(tomcat、jboss)下的JVM参数完成配置 配置环境变量 变量名:CATALINA_OPTS 变量值:-Xmx128m -Xms64m -Xmn32m -Xss16m
- tomcat下JVM配置 修改tomcat bin/catalina.bat文件
在 set JAVA_OPTS=%JAVA_OPTS%之后加上JVM参数 修改前如下图
修改后如下图 - jboss下JVM配置 Windows环境下,编辑jboss/bin/standalone.conf
文件中找到JAVA_OPTS(java配置相关)
在Linux下,同样也是修改jboss/bin/standalone.conf
6.4通过Java程序验证JVM参数配置是否生效
Runtime.getRuntime().maxMemory(); //最大可用内存,对应-Xmx,默认值为物理内存的1/4,设值不能高于计算机物理内存;
Runtime.getRuntime().freeMemory(); //当前JVM空闲内存
Runtime.getRuntime().totalMemory(); //JVM已使用的内存及freeMemory()的总和