JVM—java虚拟机(教育精品).pptx

上传人:gsy****95 文档编号:87574802 上传时间:2023-04-16 格式:PPTX 页数:34 大小:410.96KB
返回 下载 相关 举报
JVM—java虚拟机(教育精品).pptx_第1页
第1页 / 共34页
JVM—java虚拟机(教育精品).pptx_第2页
第2页 / 共34页
点击查看更多>>
资源描述

《JVM—java虚拟机(教育精品).pptx》由会员分享,可在线阅读,更多相关《JVM—java虚拟机(教育精品).pptx(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、JVMjava虚拟机JVM结构和运行原理JVM内存回收机制JVM调优以及实用工具一次编译Windows系统类Unix系统编译程序代码计算机机器码提高运行速度程序代码JVM字节码Java的编译java命令字节码程序(.class文件)JVM运行 类加载器字节码校验器解释器JIT操作系统SunHotspotOracleJRockitIBMJ9JVMJVM结构类加载器(Class Loader)字节码程序(.class文件)类加载器内存JVM加载装入实例化或加载类加载器(Class Loader)启动类加载器加载核心类扩展类加载器扩展功能的jar包系统类加载器Classpath中的jar包用户自定义

2、类加载器用户自定义的加载规则类加载器的工作原理装载主要是将指定的.class文件加载到JVM中连接把二进制的类型信息合并到JVM运行时状态中去验证准备解析初始化初始化静态变量,执行static代码、构造函数。何时对类进行初始化?通过new关键字、反射、clone、反序列化机制实例化对象时调用类的静态方法时使用类的静态字段或对其赋值时通过反射调用类的方法时初始化该类的子类时JVM启动时被标记为启动类的类Java栈(Java Stack)本地方法栈(Native Method Stack)局部变量区方法参数、局部变量、对象引用操作数栈入栈出栈的基本操作帧数据区类的常量池的指针异常表方法区(Meth

3、od Area)类及其父类的全限定名类的类型访问修饰符实现的接口的全限定名的列表常量池字段信息方法信息静态变量ClassLoader引用Class引用堆(Heap)对象实例数组值指向类数据的指针指向方法表的指针对象锁引用计数清扫标记堆(Heap)新生代(New Generation)Eden SpaceSurvivor SpaceFrom SpaceTo Space老年代(Old Generation)执行引擎解释执行编译执行自适应优化执行硬件芯片执行执行引擎解释执行栈顶缓存部分栈帧共享执行机器指令执行引擎编译执行JIT技术执行引擎自适应优化执行二八原则执行引擎JVM后台线程瓶颈或热点方法极度

4、优化的静态链接的C+代码调用调用转换生成启动Java的内存结构Heap Memory存放Java对象Non-Heap Memory 存放类加载信息和其它meta-dataOther 存放JVM 自身代码等Java GC的年代划分内存申请过程垃圾收集常用算法引用计数法标记清除算法标记整理算法复制算法适配算法垃圾收集器Serial历史最悠久的收集器,单线程收集垃圾内存ParNewSerial的多线程版本Parallel Scavenge以达到一个可控制的吞吐量为目标Concurrent Mark Sweep(CMS)以获取最短回收停顿时间为目标G1最新版本的收集器JVM常用参数标准参数参数项说明-

5、client以client模式启动jvm-server以server模式启动jvm-classpath或-cp指定jvm类搜索路径-Dproperty=value设置系统属性的键值对-jar指定以jar包的形式启动应用程序-javaagent:=指定jvm启动时装入java语言设备代理-verbose:class|gc|jni输出Jvm载入类的信息、每次gc的信息、Native方法调用的情况非标准参数参数项说明-Xbootclasspath:bootclasspath让jvm从指定的路径中加载bootclass-Xbootclasspath/a:path被指定的文件追加到默认的bootstra

6、p路径中-Xbootclasspath/p:path让jvm优先于默认的bootstrap去加载path中指定的class-Xincgc开启增量gc,一般也不会用到-Xloggc:file输出gc日志-Xmsn指定jvm堆的初始大小-Xmxn指定jvm堆的最大值-Xprof跟踪正在运行的程序,并将跟踪数据输出到标准输出-Xssn设置单个线程栈的大小非稳定参数参数项说明-XX:+ScavengeBeforeFullGC新生代GC优先于Full GC执行-XX:+UseGCOverheadLimit在抛出OOM之前,jvm消耗在gc上的时间比例-XX:-UseConcMarkSweepGC采用并发

7、标记交换算法进行GC-XX:-UseParallelGC启用并行GC-XX:-UseSerialGC启用串行GC-XX:MaxNewSize=sizeJava堆中新生成对象占用堆的大小-XX:MaxPermSize=size Java堆中年老代占用堆的最大值-XX:HeadDumpPath=./java_pid.hprof指定导出堆信息时的路径或者文件名非稳定参数参数项说明-XX:-HeadDumpOnOutOfMemoryError当首次出现OOM时导出此时堆中相关信息-XX:-PrintGC每次GC时打印相关信息-XX:-PrintGCDetails每次GC时打印详细信息-XX:-PrintGCTimeStamps打印GC的时间戳-XX:-TranceClassLoading跟踪类的加载信息-XX:-TraceClassLoadingPreorder跟踪被引用到的所有类的加载信息-XX:-TranceClassResolution 跟踪常量池-XX:-TraceClassUnloading跟踪类的卸载信息JVM工具存放目录:/Java/jdk1.7.0_67/binjpsjconsole jvisualvm jstack Jmapjstat jstack dump出来的内容jmap histo 进程号jstat gcutil 进程号 刷新间隔时间Q&A

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁