安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

Java是如何实现高性能的?

4月12日 望北海投稿
  今天,从欧洲到澳大利亚,乘坐澳航的直达航班大约需要16个小时这在100年前需要一个多月的旅程。如今,速度就是一切,这一原则也适用于软件开发。在动态的本地和网络应用的存在下,没有用户会等待内容的加载。这给软件开发者带来了真正的挑战。那么,在开发高性能软件时,为什么要从几十种流行的选择中选择Java编程语言?在今天的文章中,我们将尝试回答这个问题。我们将重点讨论使Java成为低延迟和高吞吐量系统的完美选择的各个方面。内容Java虚拟机Java性能的基础是什么使Java成为高性能系统的完美语言编译和解释平台独立JIT即时编译器多线程能力垃圾收集Java虚拟机Java性能的基础
  Java性能的核心是Java虚拟机,简称JVM。
  JVM有两个主要功能:允许Java程序在任何操作系统或设备上运行(根据著名的写一次,在任何地方运行原则),并优化和主动管理程序内存。
  我们可以区分JVM的两个定义。
  1。Java虚拟机是软件程序执行其代码的运行环境。
  2。Java虚拟机是Java程序的运行方式。我们配置好设置,然后在执行过程中依靠JVM来管理程序资源。
  JVM中有很多元素,每一个元素都对软件的性能有着深刻的影响。我们可以区分出对性能有影响的JVM的三个不同组件,开发人员可以对它们进行调整。
  类加载器当编译一个。java源文件时,它以。class文件的形式被转换为字节码。当你想在你的程序中使用这个类文件时,它必须由类加载器加载到主程序内存中。这个过程包括3个阶段,加载、链接和初始化,所有这些都对应用程序的性能有深刻的影响。
  运行时内存数据区由5个核心部分组成,它负责提供内存来存储字节码、参数、对象、返回值和局部变量。
  执行引擎它负责执行每个类中存在的代码。然而,在执行程序之前,字节码本身需要被转换为JVM能够理解的指令。为了实现这一点,JVM可以使用解释器或JIT编译器,我们将在下面详细介绍。
  JVM是实现真正的Java性能的一个关键工具。有经验的开发者可以通过调整Java虚拟机的默认参数来微调它,以更好地满足应用程序的需求。这个过程可以包括调整堆的大小,并选择合适的垃圾收集器。
  作为一般的经验法则,在调整JVM时,你应该首先关注内存使用要求,然后是延迟,最后是应用程序的吞吐量。是什么让Java成为高性能系统的完美语言
  好了,我们已经确定JVM是实现Java性能的一个关键工具。那么,使Java成为构建高性能软件应用程序的完美编程语言的其他方面、特点和功能呢?
  这里有五个关键点。
  1。编译和解释
  编程语言通常可以是编译的(C、C、Haskell、Erlang或Rust)或解释的(PHP、Python、Ruby和JavaScript)。
  在这方面,Java是一种万能的语言,因为它结合了编译语言的力量和解释语言的显著灵活性。
  正如我们之前在介绍Java虚拟机时提到的,Java编译器(javac)将java源代码编译成字节码,然后可以在所有装有JVM的机器上执行。
  这张图更好地展示了这个过程。
  2。平台的独立性
  JVM赋予了Java最大的优势平台独立性。
  Java虚拟机几乎可以安装在所有可用的操作系统上,从Windows,到Mac和Linux。平台独立性允许在任何机器上编译和执行代码,并确保结果相同。
  在这种情况下,字节码是实现完全平台独立性的关键,也值得解释一下字节码到底是什么,因为我们在本文中已经提到过几次。
  Java字节码只是一个包含JVM指令的程序。它的工作原理类似于汇编器,是C代码的一种表示。就其本身而言,它是一种二进制格式的代码,由常量、引用和数字代码组成,可由机器的硬件读取和执行。
  这里有一张图,解释了Java字节码是如何实现平台独立的。
  3。JIT及时编译器
  说到编译,这里是Java的另一张王牌即时编译器(JIT)编译器)。将字节码转换为本地机器语言执行的方式对它的速度有很大影响。JIT编译器与Java虚拟机(JVM)互动,将Java字节码序列变成本地机器代码。
  重要的是,JIT编译器是按需编译代码的。这意味着,它只编译正在被调用的方法。这大大提高了整体效率,节省了时间。
  在使用JIT编译器时,计算机硬件能够直接执行本地代码,而不是让JVM一次又一次地解释同一序列的字节码。如果编译后的方法被频繁地执行,这可能会导致大量的性能提升。
  更重要的是,JIT编译器在编译为本地机器语言的同时,还能进行很多简单的优化。其中一些优化包括数据分析、从堆栈操作到寄存器操作的转换、通过寄存器分配减少内存访问,以及消除常见的子表达式。
  4。多线程能力
  Java是一种能够在语言层面上实现多线程的技术。多线程允许程序在多个计算核心和线程上执行并发的计算。更重要的是,多线程应用程序可以保持对输入的响应,即使是在执行长期运行的任务时。
  多线程现在比以往任何时候都更重要,特别是当硬件公司正在发布越来越强大的企业级CPU,如新披露的Zen4Epyc处理器,提供令人震惊的192个计算线程。
  区分多线程和多处理也很关键。第一个术语指的是在多个CPU线程上并发执行计算的能力。另一方面,后者指的是一个系统同时运行多个处理器的能力,其中每个处理器可以操作多个线程。
  一般来说,多线程是首选,因为CPU线程使用一个共享的内存区域,这有助于节省内存,并允许稍快的内容切换。
  5。垃圾收集
  最后但并非最不重要的是,我们必须涵盖Java的垃圾收集。简而言之,它是Java程序进行自动内存管理的过程。当Java程序在JVM上运行时,对象在堆上被创建,但最终,其中一些对象将不再被需要。
  垃圾收集器会自动检测这些未使用的对象并将其删除,在此过程中释放出宝贵的内存资源。
  在Java中执行垃圾收集过程有三个阶段。检查是否符合条件
  如果一个对象无法到达,就有资格进行垃圾收集(GC)。我们可以区分四种使Java对象符合垃圾收集条件的主要方式。
  重新分配指针变量EmployeeemployeeOnenewEmployee();
  EmployeeemployeeTwonewEmployee();
  employeeOneemployeeTthefirstobjectreferredbyemployeeOneisavailableforgarbagecollection
  删除指针变量EmployeeemployeenewEmployee();
  
  使用匿名对象
  register(newEmployee());
  隔离岛(一组相互引用的对象,但不被应用程序中的任何活动对象所引用)。请求JVM运行垃圾收集器
  请求JVM运行垃圾收集器可以通过两种主要方式设置。使用System。gc()方法System类包含静态方法gc(),用于请求JVM运行垃圾收集器。使用Runtime。getRuntime()。gc()方法Runtime类允许应用程序与运行该应用程序的JVM接口。通过使用其gc()方法,我们可以请求JVM运行GC。
  最终化
  在删除一个对象之前,垃圾收集器对该对象使用finalize()方法来执行最后的清理活动。一旦finalize()方法完成,GarbageCollector就会删除该对象。Java是如何实现高性能的总结
  Java实现了高性能的软件开发,这是其他编程语言无法做到的。所有的开发人员都应该确保他们正在开发的Java程序能够充分发挥其能力,并正确利用这种奇妙的编程语言所提供的所有工具。
投诉 评论

穿红袄的陕北女孩,红了!起风了。黄土高原已经看不见一点绿色。大风呼嚎着,似鞭子一般抽打在光秃秃的山脉,山原缄默,不发一言。这里是陕北。这也是在高娜的视频开头,重复了无数次的开场白。眼……应尽快把美国告到世贸组织据今日俄罗斯电视台网站12月4日报道,欧洲议会国际贸易委员会主席贝恩德朗格3日对德国《柏林晨邮报》说,欧盟应针对美国有争议的《通胀削减法案》向世界贸易组织提起申诉。报道援……11月新能源销量,特斯拉终破10万,比亚迪再次登顶!近日,乘联会对外公布了11月新能源车市销量以及新能源车企批发销量排名,据数据显示,11月厂家批发销量预估为73。2万辆,环比增长8,同比增长约71。其中共有19个品牌上榜,比亚……弱者自困,强者自愈,智者愈人弱者抱怨,自困蹉跎一生;强者自愈,能抚平一切伤痛;智者愈人,能驱散人间阴霾。作者:时迩;主播:李鑫来源:富兰克林读书俱乐部原创著名演员朱永平曾说:成年人的世界……成都天光墟,不问真假不问来历,有人月赚5万,有人亏本8000天光墟在很多城市都有,是我国民间的一种集市,因为天黑开张天亮收摊,所以很多地方也叫鬼市!现在的鬼市还呈现年轻化的趋势,因为越来越多的年轻人听从号召,晚上有空的时候出来摆摊……小蝌蚪健康,才能好孕现如今生活压力越来越大,而男性一般作为一个家庭的顶梁柱,承受的工作、生活及精神方面的压力也相当大,不少男性可能面临身心方面的亚健康甚至疾病状态。比如前列腺炎、性功能障碍、前列腺……多地景区出台免门票政策,推动旅游市场复苏来源:新华网国庆节期间,福建武夷山景区游人如织。在网上做攻略时发现武夷山主景区免门票,立马订了机票。来自辽宁的陈女士说。今年以来,福建武夷山、山东崂山、陕西华山、湖……iOS16又更新了,修复了这些烦人的东西,信号也增强了?到了12月1日,一大早苹果就向iPhone8机型以上的用户推送了全新的iOS16系列的更新,此次是iOS16。1。1正式版的更新,为iOS16。1。2,版本号为20B110。看……今日绘本RAZlevelBAColdDayListening听绘本Reading读绘本Flashcard单词卡阅读目标连接到先验知识以理解文本确定主要思想和细节区分声母f的发音确定初始Ff识别和使用名……11月中国电商物流指数小幅回落市场恢复进程仍存不确定性中新社北京12月3日电(记者阮煜琳)中国物流与采购联合会3日发布数据显示,11月中国电商物流指数为106。6点,比上月回落0。3个点。分析称,11月受传统电商购物节刺激,电商物……品读九首禅意诗词,一念心清净,万般皆自在尘世中,总有我们看不透的风景,也总有我们无法忘怀的昨天,也许没心没肺,才能过好每一天,也许不动声色,日子才能如行云流水。将岁月的风霜,前行的风尘,全部煮进一壶闲茶,静静地……Java是如何实现高性能的?今天,从欧洲到澳大利亚,乘坐澳航的直达航班大约需要16个小时这在100年前需要一个多月的旅程。如今,速度就是一切,这一原则也适用于软件开发。在动态的本地和网络应用的存在下,没有……
两部门举报违法违规使用医保基金最高奖20万有一种肾虚,叫脾肾两虚,送你一个中成药,脾肾双补,气血同调85岁马玉琴不见踪影,李玉成和孙子搭档拍视频,网友正式接班人大代表献计16条,漕泾郊野公园未开园已预热初冬季节的黑色丝袜搭配,搭配短靴也很好看,舒适保暖又很洋气中国大城市会重启ampampquot拆迁ampampquot002090金智科技优雅女性与葡萄酒说白了,放下一个人最好的方式熬老话说入冬后要顺应节气,牢记3吃2不吃,任何时候都需要节制vivoX90开始剧透,影像提升巨大,1英寸大底自研V2特拉斯不是特斯拉,只是特拉斯小叶榕的养殖方法和注意事项:光照不足叶片微脱落如何做一个知识技能型的抖音号新手玩抖音这么做容易电脑ip地址怎么查记忆深处的那抹茶香作文800字1899元的高性能OPPOK9手机值吗?65W闪充6400万基于互联网中职英语课教学设计探索研究老人眩晕试试中医妙方曾精准预测高通胀的经济学家美国经济将硬着陆好合造句用好合造句大全我有这样一位朋友拖车绳不得小于几米怀孕了要注意什么孕妈咪这些一定要知道

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利