《JVM优化》.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《JVM优化》.pdf

JVM优化 Contents 1 JVM介绍 2 JAVAC编译优化 3 JIT编译器优化 4 内存模型 5 GC策略 6 常见问题处理 执行过程 VM 的基本结构 • 一套运行时环境 –一个解释器 –一组GC • 两个编译器 • Client编译器(C1) • 轻量,只做少量性能开销比高的优化,占用内存比较 少,启动速度快 • Serer编译器(C2) • 重量,大量应用系统编译优化,占用内存相对多 • 顶峰速度高 • 适用于服务器端应用 Javac工作流程 • 解析与输入到符合表 • 注解处理 • 分析与代码生成 属性标注与检查 数据流分析 泛型处理 解除语法糖 生成class文件 生成class文件 –将实例成员初始化收集到构造器中成为init() –将静态成员初始化收集为clinit() –从抽象语法树生成字节码 • 后序遍历语法树 • 进行最后的少量代码转换 –String的+被替换为stringbuilder操作 –Static final替换,etc –从符号表生成class文件 • 生成class文件的结构信息 • 生成元数据 JAVAC编译优化 • 源代码 • 编译优化后 Class文件所记录的信息 • 结构信息 • Class文件格式版本号 • 各部分的数量与大小 • 元数据 • 类/继承的超类/实现的接口的声明信息 • 域与方法申明信息 • 常量池 • 用户自定义的,RetentionPolicy为class或RUNTIME的注解 • 源代码中的常量信息 • 方法信息 Class 文件格式 对象占用大小评估 (“main”32位HotSpot) JVM堆结构 JVM运行时数据区域 • 程序计数器 • 用来保存程序当前要执行的下一条指令 • JVM线程栈 • 存放了编译期可知的各种标量类型、对象引用、方法返回地 址等 • 本地方法栈 • 年轻代+年老代 • 永久代 • 存放了每个Class的结构信息,包括常量池、字段描述、方 法描述等 • 运行时常量(永久代的一部分) • 存放编译期生成的各种字面量和符号引用 • 直接内存 • DirectByteBuffer避免了在Java 堆和Native 堆中来回复制 数据 GC方式 CMS • CMS并非没有暂停,而是用两次短暂停来替代串行标记整理 算法的长暂停,它的收集周期是这样: 初始标记(CMS- initial-mark) - 并发标记(CMS- concurrent-mark) - 重新标记(CMS-remark) - 并发清除 (CMS-concurrent-sweep) -并发重设状态等待下次CMS的触 发(CMS-concurrent-reset)。 其中的1,3两个步骤需要暂停所有的应用程序线程的。 第一次暂停从root对象开始标记存活的对象,这个阶段称为 初始标记;第二次暂停是在并发标记之后,暂停所有应用程 序线程,重新标记并发标记阶段遗漏的对象。 常见优化参数 GC • 年轻代 –关注Minor gc频率 –使得新对象尽量在minor gc过程中死亡 •

文档评论(0)

wgvi + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档