襄阳住房和城乡建设网站住房与住房建设部网站首页

张小明 2026/3/2 21:36:06
襄阳住房和城乡建设网站,住房与住房建设部网站首页,东莞网站建设制作公司排名,吕梁网站建设公司JVM执行引擎 一、JVM前后端编译 前端编译#xff1a;使用编译器将Java文件编译成class字节码文件后端编译#xff1a;将class字节码文件编译成机器码指令java 跨平台直接理解#xff1a;前端编译将java文件编译成class文件#xff0c; 然后使用jvm#xff08;后端编译使用编译器将Java文件编译成class字节码文件后端编译将class字节码文件编译成机器码指令java 跨平台直接理解前端编译将java文件编译成class文件然后使用jvm后端编译所以跨平台需要在多个平台上设计jvm将class文件编译成对应平台上的机器码指令将class文件编译成机器码指令二、解释执行 编译执行2.1 解释执行JVM中的**解释器Interpreter**读取字节码文件逐行翻译成机器码Native Code并立即执行。翻译一句执行一句。优点启动快 不需要等待编译过程程序一启动就可以立即运行。内存占用少 不需要存储编译后的机器码。缺点运行慢 每次执行都需要重复“翻译”的过程比如一个循环跑100万次就要翻译100万次效率低下。3.1 编译执行JVM通过热点探测HotSpot Detection 监控程序运行。当发现某段代码如某个方法或循环执行频率很高被称为“热点代码”时JIT会把这段字节码一次性编译成本地机器码并缓存起来。下次再执行这段代码时直接运行机器码无需翻译。优点运行极快 执行的是优化后的本地机器码速度接近C/C。深度优化 JIT在编译时会进行各种优化如方法内联、死代码消除、逃逸分析等。缺点启动延迟 编译过程需要消耗时间编译耗时可能导致程序刚启动时负载较高。占用内存 需要专门的内存Code Cache来存储编译后的机器码。既然编译执行的速度比解释执行快那么JVM为什么还是用解释执行呢虽然编译执⾏可以将越来越多的代码编译成本地代码这样可以减少解释器的中间损耗获得更⾼的执⾏效率。但是这也意味着对内存有更多的资源限制在很多资源⽐较紧张的场景⽐如客户端应⽤嵌⼊式系统等使⽤解释执⾏就能更节约内存。编译执行后的代码存储的位置是Code Cache处于本地内存中类似元空间三、识别热点代码方法调用计数器 记录方法的调用次数如果超过阈值则将方法存入code cache中JVM的默认阈值为10000可以使用-XX: CompileThresholdN 来设置阈值回边计数器统计一个方法中循环体代码执行的次数。在class字节码文件中有例如goto等标志识别。服务端模式默认阈值为10700。客户端编译器C1和服务端编译器C2C1相当于一个初级翻译。编译过程中C1会对字节码进行简单和可靠的优化耗时短以达到更快的编译速度。启动快占用内存小。但是翻译出来的机器码优化程度不高。适合小巧的桌面应用所以称为客户端编译器。C2相当于是⼀个⾼级翻译。编译过程中C2会对字节码进⾏更激进的优化优化后的佮代码执⾏效率更⾼。但是相应的⼯作量也变得更⼤了。C2的启动更慢占⽤内存也更多。进⾏耗时较⻓的优化以及激进优化但优化的代码执⾏效率更⾼。启动慢占⽤内存多执⾏效率⾼。⽐较适合于⼀些资源充裕的服务级应⽤因此也称为服务端编译器。解释执行不会交给C1、C2进行分析所以不会进行优化四、后端热点代码优化如果JVM识别到一段代码是热点代码就会使用JIT编译器进行提前编译迁移那么在这个过程中会对编译后的代码进行额外优化。内联技术将方法的外部调用简化为在一个方法中调用减少虚拟机栈的栈帧创建销毁的消耗。例如publicintcalculate(){intx10;inty20;returnadd(x,y);// 这里发生了方法调用}// 被调用的小方法privateintadd(inta,intb){returnab;}优化为publicintcalculate(){intx10;inty20;returnxy;}如果方法过于臃肿行数太长则JIT会拒绝内联。如何从内联的角度理解阿里巴巴手册中规定的一个方法长度不能过长由于方法过于臃肿行数太长JIT会拒绝内联如果这个方法是热点方法其还是会被缓存但是其没有被内联使得其在执行其他方法假设这个方法中调用了其他方法的时候还是会去创建栈帧销毁栈使得执行效率低于内联之后的效率。逃逸分析技术标量替换栈上分配只有在使用C2编译器的时候代码是热点代码才会进行逃逸分析、标量替换等高级优化。锁消除技术对于加锁synchronized,如果编译器发现锁本身只会被一个线程获取而不会被其他线程获取那么JVM在编译的时候就会将锁去除从而提高性能。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

小组用jsp做的网站论文wordpress js 调用

函数指针// 函数名实际上就是指向函数代码的指针void (*func_ptr)() function_a; // 函数指针指向function_a的地址func_ptr(); // 通过地址调用函数指针函数//返回指针的函数:即函数的返回值是一个指针。//例如:int* createIntArray(int size) {int*…

张小明 2026/1/10 14:50:13 网站建设

传媒公司 网站开发大数据技术与应用

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个基于AI的Windows Server 2025自动化运维工具,能够自动检测服务器状态、优化性能、预测故障并提供解决方案。工具应支持PowerShell脚本生成,集成AI模…

张小明 2026/1/10 12:38:13 网站建设

上海做网站汉狮网络iframe 网站前台模板

Linly-Talker语音降噪算法显著提升识别率 在智能客服、虚拟主播和数字员工逐渐走进日常生活的今天,用户对语音交互的“听感”提出了近乎苛刻的要求:不仅要听得清,更要听得准。然而现实往往不尽如人意——办公室里的键盘敲击声、客厅中播放的电…

张小明 2026/1/10 11:59:26 网站建设

做字幕的网站郑州 做网站

你是否曾对小爱音箱说"播放周杰伦的青花瓷",却得到"抱歉,这首歌暂时无法播放"的回复?现在,有了XiaoMusic开源项目,你的小爱音箱将获得前所未有的音乐播放能力。这个工具通过智能语音控制&#xff…

张小明 2026/1/11 6:44:47 网站建设

企业微信和个人微信的区别wordpress做seo好做

Kotaemon私有化部署成本分析:中小企业能否承受? 在企业智能化转型的浪潮中,数据安全与系统可控性正成为越来越多公司关注的核心议题。尤其是当大语言模型(LLM)被广泛应用于客服、HR咨询、内部知识问答等场景时&#xf…

张小明 2026/1/11 7:32:21 网站建设

潍坊市建设工程管理处网站张家港做网站排名

Legado书源规则完全指南:从零开始打造专属阅读宇宙 【免费下载链接】legado Legado 3.0 Book Reader with powerful controls & full functions❤️阅读3.0, 阅读是一款可以自定义来源阅读网络内容的工具,为广大网络文学爱好者提供一种方便、快捷舒适…

张小明 2026/1/11 2:12:54 网站建设