当前位置: 首页 > news >正文 做网站的案例第二章 网站建设 news 2025/11/3 20:15:01 做网站的案例,第二章 网站建设,关于一学一做的短视频网站,最新新闻热点事件100字标量替换 (SR) 是 OpenJDK 中一项强大的优化技术#xff0c;旨在通过将复杂对象分解为更简单、更易于管理的标量变量来提高 Java 应用程序的性能。 1.前言 OpenJDK JVM 有两个即时编译器#xff0c;C1 和 C2。C2 是一种应用许多优化来生成非常高效的编译版本程序的编译器。…标量替换 (SR) 是 OpenJDK 中一项强大的优化技术旨在通过将复杂对象分解为更简单、更易于管理的标量变量来提高 Java 应用程序的性能。 1.前言 OpenJDK JVM 有两个即时编译器C1 和 C2。C2 是一种应用许多优化来生成非常高效的编译版本程序的编译器。但在深入探讨我们做出的贡献细节之前我将讨论在 C2 中实现的三个优化逃逸分析、方法内联和标量替换。 逃逸分析 (EA) 分析正在编译的代码并针对每个对象分配确定该对象是否可以在当前方法或线程之外使用。 方法内联 (MI) 是一种非常笼统的优化它用被调用方法主体的副本替换方法调用。 标量替换 (SR) 是一种优化它试图删除它认为不必要的对象分配并使用 EA 提供的信息和 MI 所做的更改来实现这一点。SR 通过转换代码以将对象的字段存储在局部变量中并使用 MI 消除对对象方法的调用从而消除对象分配。 SR 的主要好处可能是它降低了内存分配率和垃圾收集器 (GC) 的压力。但是它还有更多好处。通过删除分配该方法的代码变得更简单这可能会揭示更多的优化。所以总的来说进行标量替换是一件好事。 2.举例说明 如下述代码所示Message 类作为本文中的运行示例。此类中需要注意的重要内容是Checksum方法 和内容字段。Checksum方法对内容字段的字符进行迭代并累加它们的整数值并将其作为消息列表的校验和返回。 public class Message {public String content;public Message(String content){this.content content;}public int checkSum(){int chks 0;for(int i0;icontent.length();i){chks content.charAt(i);}return chks;} }如下述代码所示显示了CompositeChecksum方法。此方法迭代消息列表并针对每条消息调用checkSum方法。该方法累积所有消息的校验和并将其作为列表的复合校验和返回。这可能不是一段非常精心编写的代码的示例但它是编译器经常处理的代码类型尤其是在对代码应用了许多转换之后。 public int compositeCheckSum(ListString messages){int checkSum0;for(String msg:messages){Message messagenew Message(msg);int cs message.checkSum();checkSum;}return checkSum; }如下述代码所示显示了当针对Message类构造函数和checkSum方法对此方法执行 MI 时将发生的情况。请注意 Message对象的构造函数将被复制到之前调用构造函数的位置对checkSum方法的调用将被checkSum方法本身的代码替换。当然复制代码后会对其进行调整使其在目标位置仍能正常工作。 public int compositeCheckSum(ListString messages){int checkSum0;for(String msg:messages){//Message messagenew Message(msg);Message类的构造方法实现源码int cs //message.checkSum(); Message类checkSum方法实现源码checkSum;}return checkSum; }如下述代码所示显示了执行 MI后的代码。请注意对象分配仍在进行中。Message和checkSum方法的主体在循环内部复制但它们仍对对象进行操作在本例中是 m_ptr 指向的对象-以前这些方法使用this指向的对象。checkSum方法的本地chks变量现在是CompositeChecksum循环的另一个本地变量。 public int compositeCheckSum(ListString messages){int checkSum0;for(String msg:messages){Message m_ptr (Message) jvm-allocate_memory(...);m_ptr.content msg;int chks 0;for(int i0;im_ptr.content.length();i){chks m_ptr.content.charAt(i);}int cs chks;checkSum cs;}return checkSum;}如下述代码所示CompositeChecksum方法的代码仍有改进空间。在进行更多分析后C2 会发现代码中的某些赋值实际上并不需要执行。例如可以消除将msg变量赋值给content变量我们可以只迭代msg本身而不是content。同样的逻辑也适用于chks变量我们不必对chks变量进行计算然后将其赋值给cs然后累积到checksum中我们可以直接在checksum变量中进行计算。 public int compositeCheckSum(ListString messages){int checkSum0;for(String msg:messages){Message m_ptr (Message) jvm-allocate_memory(...);m_ptr.content msg;for(int i0;imsg.length();i){checkSum msg.charAt(i);}}return checkSum;}如下述代码所示经过进一步分析后C2 会注意到只有对m_ptr指向的对象进行写入没有代码从中读取。这一观察结果以及有关对象类的一些其他信息意味着此对象分配是不必要的因此可以将其删除 public int compositeCheckSum(ListString messages){int checkSum0;for(String msg:messages){for(int i0;imsg.length();i){checkSum msg.charAt(i);}}return checkSum; }对象分配移除之所以可行是因为在某个时刻没有代码从该对象读取数据。标量替换是一种优化它用直接使用最后写入对象字段的语句或值来替换对象字段的加载。还有其他优化可以达到同样的效果但它们通常适用于简单的代码片段例如此示例方法。然而标量替换可以更彻底地“查看”方法并找到可以简化这些对象字段写入的点。 3.总结 总之标量替换是 OpenJDK 中的一项关键优化技术可将复杂的对象实例转换为更简单的标量变量以提高运行时性能。通过消除堆分配的需要并减少内存开销标量替换可显著提高执行速度和资源效率。 文章转载自: http://www.morning.tpbhf.cn.gov.cn.tpbhf.cn http://www.morning.qnbsx.cn.gov.cn.qnbsx.cn http://www.morning.ymsdr.cn.gov.cn.ymsdr.cn http://www.morning.fldrg.cn.gov.cn.fldrg.cn http://www.morning.xxhc.cn.gov.cn.xxhc.cn http://www.morning.dnjwm.cn.gov.cn.dnjwm.cn http://www.morning.zzgtdz.cn.gov.cn.zzgtdz.cn http://www.morning.rzdpd.cn.gov.cn.rzdpd.cn http://www.morning.jykzy.cn.gov.cn.jykzy.cn http://www.morning.zpjhh.cn.gov.cn.zpjhh.cn http://www.morning.zknjy.cn.gov.cn.zknjy.cn http://www.morning.llllcc.com.gov.cn.llllcc.com http://www.morning.jmwrj.cn.gov.cn.jmwrj.cn http://www.morning.tslwz.cn.gov.cn.tslwz.cn http://www.morning.krnzm.cn.gov.cn.krnzm.cn http://www.morning.bnxnq.cn.gov.cn.bnxnq.cn http://www.morning.ynryz.cn.gov.cn.ynryz.cn http://www.morning.mghgl.cn.gov.cn.mghgl.cn http://www.morning.lbbgf.cn.gov.cn.lbbgf.cn http://www.morning.lgwjh.cn.gov.cn.lgwjh.cn http://www.morning.mfmrg.cn.gov.cn.mfmrg.cn http://www.morning.qsswb.cn.gov.cn.qsswb.cn http://www.morning.rbtny.cn.gov.cn.rbtny.cn http://www.morning.wrlxt.cn.gov.cn.wrlxt.cn http://www.morning.dwfzm.cn.gov.cn.dwfzm.cn http://www.morning.jjzbx.cn.gov.cn.jjzbx.cn http://www.morning.shprz.cn.gov.cn.shprz.cn http://www.morning.qnxkm.cn.gov.cn.qnxkm.cn http://www.morning.jtcq.cn.gov.cn.jtcq.cn http://www.morning.brrxz.cn.gov.cn.brrxz.cn http://www.morning.yhplt.cn.gov.cn.yhplt.cn http://www.morning.fxkgp.cn.gov.cn.fxkgp.cn http://www.morning.srgsb.cn.gov.cn.srgsb.cn http://www.morning.wjlnz.cn.gov.cn.wjlnz.cn http://www.morning.pyncm.cn.gov.cn.pyncm.cn http://www.morning.kjyqr.cn.gov.cn.kjyqr.cn http://www.morning.ccffs.cn.gov.cn.ccffs.cn http://www.morning.frsxt.cn.gov.cn.frsxt.cn http://www.morning.rfbpq.cn.gov.cn.rfbpq.cn http://www.morning.fy974.cn.gov.cn.fy974.cn http://www.morning.yfstt.cn.gov.cn.yfstt.cn http://www.morning.ggrzk.cn.gov.cn.ggrzk.cn http://www.morning.gbljq.cn.gov.cn.gbljq.cn http://www.morning.hxwrs.cn.gov.cn.hxwrs.cn http://www.morning.qclmz.cn.gov.cn.qclmz.cn http://www.morning.iknty.cn.gov.cn.iknty.cn http://www.morning.dnhdp.cn.gov.cn.dnhdp.cn http://www.morning.pqkgb.cn.gov.cn.pqkgb.cn http://www.morning.mywnk.cn.gov.cn.mywnk.cn http://www.morning.rytps.cn.gov.cn.rytps.cn http://www.morning.rccpl.cn.gov.cn.rccpl.cn http://www.morning.jkcpl.cn.gov.cn.jkcpl.cn http://www.morning.jnzfs.cn.gov.cn.jnzfs.cn http://www.morning.mmzhuti.com.gov.cn.mmzhuti.com http://www.morning.ryznd.cn.gov.cn.ryznd.cn http://www.morning.qhln.cn.gov.cn.qhln.cn http://www.morning.bwjws.cn.gov.cn.bwjws.cn http://www.morning.mjmtm.cn.gov.cn.mjmtm.cn http://www.morning.xbdrc.cn.gov.cn.xbdrc.cn http://www.morning.qmfhh.cn.gov.cn.qmfhh.cn http://www.morning.rqgjr.cn.gov.cn.rqgjr.cn http://www.morning.mbnhr.cn.gov.cn.mbnhr.cn http://www.morning.hlmkx.cn.gov.cn.hlmkx.cn http://www.morning.huxinzuche.cn.gov.cn.huxinzuche.cn http://www.morning.trrhj.cn.gov.cn.trrhj.cn http://www.morning.beijingzy.com.cn.gov.cn.beijingzy.com.cn http://www.morning.dxsyp.cn.gov.cn.dxsyp.cn http://www.morning.atoinfo.com.gov.cn.atoinfo.com http://www.morning.dqdss.cn.gov.cn.dqdss.cn http://www.morning.bpknt.cn.gov.cn.bpknt.cn http://www.morning.tpchy.cn.gov.cn.tpchy.cn http://www.morning.xsbhg.cn.gov.cn.xsbhg.cn http://www.morning.rdtq.cn.gov.cn.rdtq.cn http://www.morning.zrqs.cn.gov.cn.zrqs.cn http://www.morning.jsrnf.cn.gov.cn.jsrnf.cn http://www.morning.kaylyea.com.gov.cn.kaylyea.com http://www.morning.sogou66.cn.gov.cn.sogou66.cn http://www.morning.rhwty.cn.gov.cn.rhwty.cn http://www.morning.rwbx.cn.gov.cn.rwbx.cn http://www.morning.mgfnt.cn.gov.cn.mgfnt.cn 查看全文 http://www.tj-hxxt.cn/news/274637.html 相关文章: 高速建设材料在哪个网站购买移动端网站交互效果最好的 网站建设难点分析数字营销证书 免费不收费网站有哪些网络营销产品的整体概念 电白网站建设公司网站建设方案文档 整站模板科技英语 住房和城乡建设部网站官网建立公司网站视频 上海专业网站建设多少钱医院网站建设报告 沧州建网站成都平台网站建设公司排名 网站排名alexa微信营销的模式 美团先做网站还是app搜索推广网站哪家做的最好 网站中英文要怎么做做公司网站的模板下载 芙蓉区营销型网站建设定制宝塔系统搭建wordpress 怎样做一个公司网站什么情况自己建设网站 网站建设公司天成wordpress win 伪静态 北京网站设计 公司新鸿儒如何做一张网站平面效果图 网站设计昆明手机地图app下载安装 hs网站推广如何搭建一个app平台 怎么修改网站备案信息网站特色分析 自己做的网站被封了帝国cms网站地址 做暧动漫视频在线观看网站南昌建设企业网站 rails 网站开发网站优化托管方案文库 广州网站开发 英诺科技企业网站建设变相收取等级保护费 wordpress快速建站wordpress主题萨龙龙 一级a做爰全过程片视频网站网站投注建设 在线画流程图的网站知名网络公司 导购类网站如何做会员互动响应式博客网站模板 代理ip注册网站都通不过怎么查询网站备案 网站制作上哪学校淘宝客免费建网站 化工网站开发个体营业执照网上申请 dw网站制作温州市住房和城乡建设局