您的位置:网站首页 > net源码 > 正文

使用 JITWatch 查看 JVM 的 JIT 编译代码

类别:net源码 日期:2018-7-31 2:33:04 人气: 来源:

  我们知道Java代码通过编译器编译成字节码,一般是class文件,有JVM的各个类加载器加载后,根据JVM的启动配置可以进行解释执行和编译执行,编译执行是由JIT(Just In Time)Compiler将字节码编译成本地代码来提高执行速度,缺点是编译本身会消耗时间并且会占用堆外空间(codecache中), 但是一般Server应用内存足够且能够启动时的略微缓慢。

  有时候我们想排题或者了解底层是如何实现的,就需要查看JIT编译后的汇编代码是什么样的,Hotspot提供了-:+PrintAssembly选项来输出编译后的汇编代码,缺点是输出日志量巨大,并且难以和代码中的对应起来。

  然后选择想要查看的类和对应的方法,即可查看对应的源代码、ByteCode、JIT生成的AssemblyCode。耿彦波简历

  这里可以看到一个经常提到的volatile字段的实现,在MacOS x64的实现是在volatile write后添加一个lock指令作为StoreLoad屏障来可见性和防止重排序的。更多JMM的内容可以参考我的另一篇文章Java内存模型JMM浅析。

  本文由 325游戏(m.325games.com)整理发布

关键词:源码编译
0
0
0
0
0
0
0
0
下一篇:没有资料

网友评论 ()条 查看

姓名: 验证码: 看不清楚,换一个

推荐文章更多

热门图文更多

最新文章更多

关于联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助

CopyRight 2002-2012 技术支持 源码吧 FXT All Rights Reserved

赞助合作: