深入理解jvm原理之逃逸分析
最近一直在学习Java虚拟机原理,觉得有意思的地方就写个文章记录下来。优胜劣汰是自然界的发展,适用到Java虚拟机也不为过,jvm过了生存下去,一直在自我进化,Java虚拟机也在不停的进化和优化,有的是基于执行代码的优化,例如指令重排序等等;有的是基于分析技术,例如关系分析或者逃逸分析等等,今天就重点介绍一下jvm中的分析技术优化---逃逸分析;内容大部分源自于《深入理解Java虚拟机》;
逃逸分析一般分为两种:一种基本行为就是分析对象的动态作用域,当一个对象在方法中定义后,它可能被外部的方法所引用,例如作为调用参数传入了其他对象中,称为方法逃逸;甚至被外部线程所引用,例如赋值给变量或可以在其他线程中访问的变量,这种优化行为称为线程逃逸;
概念归概念,最终效果怎么样,肯定还需要是骡子是马拉出来遛遛,总牛的理论需要落地检验,说程序员的话,也就是一个对象不会逃逸到方法或者线程之外后,这个变量会进行一些高效的优化;实现方式一般有下面几种;
栈上分配:无论是C#还是Java的程序员,大家都知道,对象会创建在Java堆上,而Java堆中的对象对线程(Java线程)是共享和可见的,而虚拟机的垃圾回收就是回收对象不再适用的对象,无论哪种垃圾回收器,都需要需要筛选和整理可回收的对象,回收和整理要耗费很长时间,如果确定一个方法不会逃逸出方法之外,那就让这个对象直接分配在栈上,而对象所占用的空间也会随着帧栈的出栈而销毁,垃圾回收系统的压力会就变的小了;
消除同步:线程同步本身就是一个相对耗时的过程(至于为什么耗时,可以查询用户线程和内核线程相关知识),如果确认一个对象不会被其他线程访问;那么变量的读写就不会和其他线程竞争,对于这种变量实施的同步可以消除;
标量替换:标量又称scalar是指一个数据已经无法再分解成更小的数据来表示了,Java虚拟机中的原始数据例如int,long,等值类型以及reference类型,都不能再进一步分解,他们就可以称为标量,相对的,它们如果可以继续分解,那就是称为聚合量又称Aggregate,Java对象就是典型的聚合量,如果把一个对象拆散,根据程序访问情况,将其使用到的成员变量类型变成基本类型代替,如果jvm逃逸分析中发现这个对象不会外部对象使用,那程序执行的就不会创建该对象,为改为创建它的若干个被这个方法使用的成员变量来代替(栈上创建的数据,又很大的概率会被jvm分配至物理机的高速寄存器中存储),这个也为后续进一步的优化创造了条件;
逃逸分析很多优势还在陆陆续续发现,Java8已经默认开启了逃逸分析,-XX:+DoEscapeAnalysis 开启或者关闭这个选项;都是干活,后续上带么和截图来验证一下;
鸿蒙系统带来多维度创新,用户迫不及待要升级操作系统有多重要?从市值或许可以看出来。今天,全球市值最高的四家公司,有三家拥有自己的操作系统,它们分别是苹果微软谷歌。且在大部分时间里,全球市值前三,都由这三家公司霸占。操作系统
左手鸿蒙右手特斯拉,魅族这个新品有点东西现在的手机厂商,没一个敢说自己专一。上一秒还在发手机,下一秒就和智能家居好上了。(bushi)就连产品比较少的魅族,都在做手机的而同时,兼顾各种智能产品。不过,黑猫白猫,做出让消费
打造地表最强解说天团5G欧洲杯来了第九届中国网络视听大会于6月3日至5日在成都隆重举行,6月4日,中国移动咪咕承办的5G视听体育论坛,汇聚行业大咖产业生态合作伙伴奥运冠军,共话体育产业的发展与变革。随着5G等技术的
小米MIX4临门一脚!国产屏下镜头屏幕即将出货完美全屏终实现虽然小米前不久发布了号称安卓机皇和安卓之光的两款顶级旗舰小米11Pro和小米11Ultra,基本上各项配置都全面拉满,但在米粉心中它们依然不配成为小米手机机皇。因为还有多项黑科技并
目前超值的几款手机,同价位基本没有对手这几天电商平台手机销量方面还是很有看点的,总结了一些现阶段值得入手的机型。各个价位机型都有。而目目前很多消费者购买手机也都看中了性价比这一块。近期要更换手机的可以考虑下面这些机型。
有什么音乐发烧友钟爱的耳机推荐?谢谢邀请!如今耳机的款式越来越多了,从款式上看有蓝牙耳机有线耳机无线耳机等。如今还有一个现象是,许多网友们跟着喜欢的明星或偶像去选购一些耳机,比如看到许多广告中,明星们戴着的头戴式
性能暴增20倍!宝马全新车机系统上车将中国上市6月2日,宝马官方正式发布了全新纯电中型车i4,该车将搭载宝马最新的iDrive8车载系统,并将推出i4eDrive40和i4M50两款车型,其也是含M的首款电动车。新车外观很大程
骁龙895?高通新旗舰SoC规格曝光或有GPU性能暴涨6月4日,来自爆料届一哥evleaks(EvanBlass,埃文布拉斯)的消息,其曝光了代号为SM8450的高通SoC规格,这就是明年安卓旗舰标配的SoC,预计CPU提升不明显,但
性能优越的红米Note10Pro真香Note系列是红米旗下性价比最高的千元系列,产品一直深入人心,5月26日,红米发布会上发布了最新一款的Note10系列,这也是最近备受期待的一款产品。Note10系列一共有三款机型
地平线苏治中面向规模化量产的自动驾驶感知研发与实践导读4月27日,地平线在智东西公开课开设的地平线自动驾驶技术专场第2讲顺利完结,地平线智能驾驶感知研发部负责人苏治中就面向规模化量产的自动驾驶感知研发与实践这一主题进行了直播讲解。
俄乌战争,到底是什么战争?带给我们哪些启示?俄乌战争已经进行了两个多月了,对世界格局产生了很大影响,特别对中美俄欧各方国际关系产生了深刻变化,尽管这场战争还没结束,但俄乌之间的战争带给了我们哪些启示?图片来源于网络两国之争,