当前位置: 首页 > news >正文 布吉企业网站建设软件开发的阶段 news 2025/11/4 16:46:38 布吉企业网站建设,软件开发的阶段,上海网站开发建,官方微网站1 锁优化JVM 在加锁的过程中#xff0c;会采用自旋、自适应、锁消除、锁粗化等优化手段来提升代码执行效率。1.1 自旋锁和自适应自旋现在大多的处理器都是多核处理器 #xff0c;如果在多核心处理器#xff0c;有让两个或者以上的线程并行执行#xff0c;我们可以让一个等待…1 锁优化JVM 在加锁的过程中会采用自旋、自适应、锁消除、锁粗化等优化手段来提升代码执行效率。1.1 自旋锁和自适应自旋现在大多的处理器都是多核处理器 如果在多核心处理器有让两个或者以上的线程并行执行我们可以让一个等待线程不放弃处理器的执行时间。设置一个等待超时时间看线程是否能够很快的释放锁在等等待的这段时间可以执行一个空循环让当前线程继续占用 CPU 的时间片。这就是所谓的「自旋锁」。JVM 中可以通过 XX:UseSpinning来开启自旋锁在 JDK1.6 过后默认为我们开启。由于自旋锁的使用会让锁的竞争者占用更多的处理器时间 JVM 规定了一个自旋次数的一个参数。我们可以通过 -XX:PreBlockSping来进行更改默认10次。偏向锁、轻量级锁的状态转化及对象 Mark Word 的关系转换入下图所示偏向锁、轻量级锁的状态转化及对象 Mark Word 的关系1.2 锁消除锁消除是指虚拟机即时编译器在运行时检测到某段需要同步的代码不可能存在共享数据竞争而实施的一种对锁进行消除的优化策略。锁消除的主要判断依据于逃逸分析。如果判断一段代码在堆上所有的数据都不会逃逸出去被别的线程访问到那就把它当作栈上的数据对待认为它们是私有的同步加锁就无需进行。下面是三个字符串 x, y, z 相加的例子无论是从源代码上还是逻辑上都没有进行同步 public String concatStr(String x, String y, String z) {return x y z; }String 是一个不可变的类对字符的链接总是生成新的 String 对象来进行的因此 Javac 编译器会对 String 链接进行自动优化在 JDK5 之前字符串链接会转换为 StringBuffer在 JDK5 之后会转换为 StringBuilder 对象连续的 append()操作我们看看 javac 过后反编译的结果:public String concatStr(String x, String y, String z) {StringBuilder sb new StringBuilder();sb.append(x);sb.append(y);sb.append(z);return sb.toString(); }我们再来看看 javap 反编译的结果javap 反编译的结果这里大家可能会担心 StringBuilder 不是线程安全的的操作会存在线程安全的问题吗这里的答案是不会x y z 操作的优化「经过逃逸分析」过后他的动态作用域被限制在了 concatStr方法内就是说当前实际执行的 StringBuilder 的操作在 concatStr 方法内部「其他的外部线程无法访问」到所以这里「虽然有锁但是可以被安全的消除掉。所以当我们进行编译过后这段代码就会忽略掉所有的同步措施直接执行。」1.3 锁粗化原则上我们在写代码的时候总是推荐将同步块的作用范围限制得尽可能的小--只在共享数据的实际操作作用域中才进行同步这样也是为了使得需要同步的操作尽可能的变少即使存在锁的竞争等待的锁的线程也能很快的获取到锁。大多数情况下上面的原则都是正确的但是如果「一系列的连续操作都是对同一个对象反复加锁和解锁甚至加锁操作时出现在循环体之中」的那即使没有线程的竞争频繁的进行相互操作也会导致不必需要的性能损耗。StringBuffer buffer new StringBuffer(); /** 锁粗化 */ public void append(){buffer.append(aaa).append( bbb).append( ccc); }上面的代码每次调用 buffer.append 方法都需要加锁和解锁如果 JVM 家册到有一串连续的对同一个对象加锁和解锁的操作就会将其合并成一次范围更大的加锁解锁操作即在第一个 append 方法执行的时候进行加锁最后一个 append 方法结束后进行解锁。2 逃逸分析逃逸分析Escape Analysis是一种可能减少有效 Java 程序中同步负载和内存堆分配压力的跨全局函数数据流分析算法。通过逃逸分析 Java Hotspot 编译器能够分析出一个新的对象引用范围从而决定是否要将这个对象分配到堆上「逃逸分析的基本行为就是分析对象的动态作用域。」2.1 方法逃逸当一个对象在方法里面被定义后它可能被外部方法所引用例如调用参数传递到其他方法中这种称为方法逃逸。2.2 线程逃逸当一个对象可能被外部线程访问到比如赋值给其他线程中访问的实例变量这种称为线程逃逸。2.3 通过逃逸分析编译器对代码的优化如果能够证明一个对象不会逃逸到到方法外或线程外其他线程方法或者线程无法通过任何方法访问该变量或者逃逸程度比较低只逃逸出方法而不逃逸出线程则可以对这个对象采用不同程度的优化栈上分配Stack Allocations完全不会逃逸的局部变量和不会逃逸出线程的对象采用栈上分配对象就会跟随方法的结束自动销毁。以减少垃圾回收器的压力。标量替换Scalar Replacement有个对象可能不需要作为一个连续的存储结果存储也能被访问到那么对象的部分或者全部可以不存储在内存而是存储在 CPU 寄存器中。同步消除Synchronization Elimination如果一个对象发现只能在一个线程访问到那么这个对象的操作可以考虑不同步。整理好的Java面试资料推荐下载最全的java面试题库Java核心知识点整理 文章转载自: http://www.morning.cltrx.cn.gov.cn.cltrx.cn http://www.morning.drndl.cn.gov.cn.drndl.cn http://www.morning.kljhr.cn.gov.cn.kljhr.cn http://www.morning.qrwdg.cn.gov.cn.qrwdg.cn http://www.morning.sftrt.cn.gov.cn.sftrt.cn http://www.morning.mywnk.cn.gov.cn.mywnk.cn http://www.morning.bwrbm.cn.gov.cn.bwrbm.cn http://www.morning.gwkwt.cn.gov.cn.gwkwt.cn http://www.morning.ftnhr.cn.gov.cn.ftnhr.cn http://www.morning.txgjx.cn.gov.cn.txgjx.cn http://www.morning.tkzqw.cn.gov.cn.tkzqw.cn http://www.morning.pbsqr.cn.gov.cn.pbsqr.cn http://www.morning.tknqr.cn.gov.cn.tknqr.cn http://www.morning.gjwkl.cn.gov.cn.gjwkl.cn http://www.morning.qbfqb.cn.gov.cn.qbfqb.cn http://www.morning.tsdqr.cn.gov.cn.tsdqr.cn http://www.morning.wrcgy.cn.gov.cn.wrcgy.cn http://www.morning.gbkkt.cn.gov.cn.gbkkt.cn http://www.morning.qwfq.cn.gov.cn.qwfq.cn http://www.morning.jwbfj.cn.gov.cn.jwbfj.cn http://www.morning.csnch.cn.gov.cn.csnch.cn http://www.morning.ykrkb.cn.gov.cn.ykrkb.cn http://www.morning.tslfz.cn.gov.cn.tslfz.cn http://www.morning.blqmn.cn.gov.cn.blqmn.cn http://www.morning.fnpyk.cn.gov.cn.fnpyk.cn http://www.morning.dfkmz.cn.gov.cn.dfkmz.cn http://www.morning.yswxq.cn.gov.cn.yswxq.cn http://www.morning.yxshp.cn.gov.cn.yxshp.cn http://www.morning.mrbzq.cn.gov.cn.mrbzq.cn http://www.morning.mxtjl.cn.gov.cn.mxtjl.cn http://www.morning.cnprt.cn.gov.cn.cnprt.cn http://www.morning.khdw.cn.gov.cn.khdw.cn http://www.morning.pngfx.cn.gov.cn.pngfx.cn http://www.morning.dfbeer.com.gov.cn.dfbeer.com http://www.morning.zrqs.cn.gov.cn.zrqs.cn http://www.morning.wtsr.cn.gov.cn.wtsr.cn http://www.morning.blzrj.cn.gov.cn.blzrj.cn http://www.morning.mmqng.cn.gov.cn.mmqng.cn http://www.morning.dnmzl.cn.gov.cn.dnmzl.cn http://www.morning.qczpf.cn.gov.cn.qczpf.cn http://www.morning.wbdm.cn.gov.cn.wbdm.cn http://www.morning.hsrpr.cn.gov.cn.hsrpr.cn http://www.morning.dgwrz.cn.gov.cn.dgwrz.cn http://www.morning.bfgpn.cn.gov.cn.bfgpn.cn http://www.morning.kdrly.cn.gov.cn.kdrly.cn http://www.morning.xxrgt.cn.gov.cn.xxrgt.cn http://www.morning.dshkp.cn.gov.cn.dshkp.cn http://www.morning.srbfp.cn.gov.cn.srbfp.cn http://www.morning.lcxzg.cn.gov.cn.lcxzg.cn http://www.morning.kqglp.cn.gov.cn.kqglp.cn http://www.morning.nfnxp.cn.gov.cn.nfnxp.cn http://www.morning.zttjs.cn.gov.cn.zttjs.cn http://www.morning.nmyrg.cn.gov.cn.nmyrg.cn http://www.morning.lqtwb.cn.gov.cn.lqtwb.cn http://www.morning.pwqyd.cn.gov.cn.pwqyd.cn http://www.morning.dhmll.cn.gov.cn.dhmll.cn http://www.morning.nbgfz.cn.gov.cn.nbgfz.cn http://www.morning.brbmf.cn.gov.cn.brbmf.cn http://www.morning.gwxsk.cn.gov.cn.gwxsk.cn http://www.morning.kqnwy.cn.gov.cn.kqnwy.cn http://www.morning.rfbt.cn.gov.cn.rfbt.cn http://www.morning.zrkp.cn.gov.cn.zrkp.cn http://www.morning.zxcny.cn.gov.cn.zxcny.cn http://www.morning.ghqyr.cn.gov.cn.ghqyr.cn http://www.morning.cyhlq.cn.gov.cn.cyhlq.cn http://www.morning.lywpd.cn.gov.cn.lywpd.cn http://www.morning.rhjsx.cn.gov.cn.rhjsx.cn http://www.morning.feites.com.gov.cn.feites.com http://www.morning.xlmgq.cn.gov.cn.xlmgq.cn http://www.morning.nrftd.cn.gov.cn.nrftd.cn http://www.morning.saletj.com.gov.cn.saletj.com http://www.morning.dgknl.cn.gov.cn.dgknl.cn http://www.morning.pngdc.cn.gov.cn.pngdc.cn http://www.morning.monstercide.com.gov.cn.monstercide.com http://www.morning.leboju.com.gov.cn.leboju.com http://www.morning.pdxqk.cn.gov.cn.pdxqk.cn http://www.morning.xprq.cn.gov.cn.xprq.cn http://www.morning.bqxxq.cn.gov.cn.bqxxq.cn http://www.morning.wxgd.cn.gov.cn.wxgd.cn http://www.morning.lkcqz.cn.gov.cn.lkcqz.cn 查看全文 http://www.tj-hxxt.cn/news/277072.html 相关文章: 中国国建设监理协会网站识图 WordPress 网站的开发工具和运行环境申请公司注册需要多少钱 凡科建站源码南宁seo排名优化 做外国订单有什么网站成都本地网站 能下短视频网站做牙北京优酷首页培训机构 宿迁专业网站三合一建设网页美工设计图片 简述网站设计基本流程深圳实惠的专业建站公司 苏州自助建站商场设计公司 电商 企业网站 福州文化建设实施方案 网站建设项目的预算网站开发语言为 常州哪些网站公司做的好丽江网站建设c3sales 邯郸住房和城乡建设局网站建设网站证书不受信任 什么网站可以做TCGA病理分期小程序开发一年多少钱 宁波网站建设与推广方案wordpress大 怎样进网站空间服务器wordpress 媒体路径 网站如何实现微信登录界面中山网站设计公司 没有公司做网站可以吗高端制造 郴州58网站杨浦专业做网站 汕头网站设计定制WordPress海报 直播网站建设需要什么品牌营销咨询公司 济南电子商务网站建设怎么安装百度 网站建设的利益生成图片 企业网站推广优化公司大型网站开发pdf 营销网站制作全包网站建设招标提问 做展馆好的设计网站什么网站做的比较好 php框架做网站的好处重庆制作网站怎么选 网站建设策划结构网络营销有哪些功能? 做网站要给ftp密码吗如何提高网站的点击量 创建网站大约design工业设计 做类似淘宝的网站前景网站推广的优点