【大数据day04】——JVM优化 上(jvm的内存模型

JVM优化 - 第一天 今日内容
资料:
链接:
提取码:pup0
1、我们为什么要对jvm做优化?
在本地开发环境中我们很少会遇到需要对jvm进行优化的需求,但是到了生产环境,我们可能将有下面的需求:
在本次内容中,我们将对jvm有更深入的学习,我们不仅要让程序能跑起来,而且是可以跑的更快!可以分析解决在生产环境中所遇到的各种“棘手”的问题 。
说明:本内容使用的jdk版本为1.8 。
2、jvm的运行参数
在jvm中有很多的参数可以进行设置,这样可以让jvm在各种环境中都能够高效的运行 。绝大部分的参数保持默认即可 。
2.1、三种参数类型
jvm的参数类型分为三类,分别是:
-X参数 (非标准参数)-XX参数(使用率较高)2.2、标准参数
jvm的标准参数,一般都是很稳定的,在未来的JVM版本中不会改变,可以使用java -help检索出所有的标准参数 。
[root@node01 ~]# java -help用法: java [-options] class [args...](执行类)或java [-options] -jar jarfile [args...](执行 jar 文件)其中选项包括:-d32使用 32 位数据模型 (如果可用)-d64使用 64 位数据模型 (如果可用)-server选择 "server" VM默认 VM 是 server,因为您是在服务器类计算机上运行 。-cp <目录和 zip/jar 文件的类搜索路径>-classpath <目录和 zip/jar 文件的类搜索路径>用 : 分隔的目录, JAR 档案和 ZIP 档案列表, 用于搜索类文件 。-D<名称>=<值>设置系统属性-verbose:[class|gc|jni]启用详细输出-version输出产品版本并退出-version:<值>警告: 此功能已过时, 将在未来发行版中删除 。需要指定的版本才能运行-showversion输出产品版本并继续-jre-restrict-search | -no-jre-restrict-search警告: 此功能已过时, 将在未来发行版中删除 。在版本搜索中包括/排除用户专用 JRE-? -help输出此帮助消息-X输出非标准选项的帮助-ea[:...|:]-enableassertions[:...|:]按指定的粒度启用断言-da[:...|:]-disableassertions[:...|:]禁用具有指定粒度的断言-esa | -enablesystemassertions启用系统断言-dsa | -disablesystemassertions禁用系统断言-agentlib:[=<选项>]加载本机代理库 , 例如 -agentlib:hprof另请参阅 -agentlib:jdwp=help 和 -agentlib:hprof=help-agentpath:[=<选项>]按完整路径名加载本机代理库-javaagent:[=<选项>]加载 Java 编程语言代理, 请参阅 java.lang.instrument-splash:使用指定的图像显示启动屏幕
2.2.1、实战
实战1:查看jvm版本
[root@node01 ~]# java -versionjava version "1.8.0_141"Java(TM) SE Runtime Environment (build 1.8.0_141-b15)Java HotSpot(TM) 64-Bit Server VM (build 25.141-b15, mixed mode)# -showversion参数是表示,先打印版本信息,再执行后面的命令,在调试时非常有用,后面会使用到 。
实战2:通过-D设置系统属性参数
public class TestJVM {public static void main(String[] args) {String str = System.getProperty("str");if (str == null) {System.out.println("wbslz");} else {System.out.println(str);}}}
进行编译、测试:
【【大数据day04】——JVM优化 上(jvm的内存模型】#编译[root@node01 test]# javac TestJVM.java#测试[root@node01 test]# java TestJVMwbslz[root@node01 test]# java -Dstr=123 TestJVM123
2.2.2、-与-参数
可以通过-或-设置jvm的运行参数 。
64位操作系统
测试:
[root@node01 test]# java -client -showversion TestJVMjava version "1.8.0_141"Java(TM) SE Runtime Environment (build 1.8.0_141-b15)Java HotSpot(TM) 64-Bit Server VM (build 25.141-b15, mixed mode)itcast[root@node01 test]# java -server -showversion TestJVMjava version "1.8.0_141"Java(TM) SE Runtime Environment (build 1.8.0_141-b15)Java HotSpot(TM) 64-Bit Server VM (build 25.141-b15, mixed mode)itcast#由于机器是64位系统,所以不支持client模式