JVM for Linux JIT诊断技术的简介是什么

技术JVM for Linux JIT诊断技术的简介是什么本篇文章为大家展示了JVM for Linux JIT诊断技术的简介是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

这篇文章给大家简单介绍了针对Linux JIT的JVM的JIT诊断技术,内容简洁易懂,一定会让你眼前一亮。希望通过这篇文章的详细介绍,你能有所收获。

要告诉你关于Linux JIT的JVM的JIT诊断当把一个Java程序从使用SunJDK的平台迁移到使用IBMJDK的平台时,重要的是要了解这两个厂商的JVM中使用的优化技术之间的差异,这些技术可能会影响程序,以及如何通过调整IBMJVM中可用的优化机制来获得更好的性能。

JVM for Linux JIT诊断简介

“只写一次,到处跑”的原则(WORA)只有在纯Javatrade的时候;仅当的字节码从一个平台的特定版本的Java虚拟机(JVM)移植到另一个不同平台的相同版本的JVM时。

然而,有时这个迁移过程并不是无缝的。影响迁移过程的一个因素是不同供应商的优化技术的内部实现之间的差异。

在将一个Java程序从使用SunJDK的平台迁移到使用IBMJDK的平台时,了解这两家厂商的JVM中使用的优化技术之间的差异很重要,这些差异可能会影响程序,以及如何通过调整IBMJVM中可用的优化机制来获得更好的性能。

本文主要针对JIT中遇到的问题进行诊断,这些问题可能会在从SunHotSpotJVM迁移到基于IBM JIT的JVM时遇到。

虽然本文介绍的大部分内容一般适用于IBM JVM 1 . 3 . 1和1.4.2,但它们尤其适用于IBM JVM 1 . 3 . 1和JVM1.4.2forLinux,包括POWER上的Linux和PowerPC架构。

在Sun的JVM1.3.1中,已经包含了JIT和HotSpot编译器,可以通过使用-server或-hotspot选项调用(默认为client HotSpotVM),JIT通过使用-classic选项调用,这是一个隐式的默认值。SunJDK1.4.1和更高版本的SunJDK,只能使用HotSpot。IBMJVM1.3.1和1.4.2使用JIT和MMI的组合,这是默认的运行模式,可以实现与HotSpot相同的功能。

JVM JIT和MMI

实时编译器被用来提高Java程序的性能。JIT是一个代码生成器,它将Java字节码转换成宿主平台的本地代码。使用JIT调用时,Java程序通常比使用解释器执行字节码时运行得更快。

当JVM启动时,许多方法被加载到JVM中并执行。

如果JIT被禁用,JVM会很快启动,但在大多数情况下,运行程序的速度会像解释字节码的速度一样慢。如果启用了JIT,但没有使用JIT的一些自适应优化机制,它会在启动时尝试编译所有方法。对于applet这样的小程序,当启动JVM的时间比运行程序的时间长时,可能会成为问题。

IBMJvmmixedModeExpressor(MMI)与JIT紧密集成,可以缓解这个问题。它可以用于与HotSpotVM相同的目的,将编译方法扩展到JVM的生命周期之外。在其他特性中,人机界面还可以计算特定方法被执行了多少次。为了实现均衡的性能,MMI对于IBMJVM支持的每个平台都有一个默认的上限计数器,这个计数器经过了仔细的选择和广泛的测试研究。

每次执行该方法时,MMI中该方法的上限计数器减少1。当方法的上限计数器达到零(0)时,可以使用JIT将方法编译成本地代码。因此,像HotSpotVM一样,经常使用的方法是mdashmdash“热点”mdashmdash会在启动JVM后由JIT编译,而低频使用的方法会在后面编译,或者可能在JVM进程的整个生命周期都不编译。

IBMJVM1.3.1和1.4.2还提供了一个非标准选项——Xquickstart,用于提高一些Java程序的启动时间。-Xquickstart选项导致优化选项的子集用于运行JIT;也就是快速编译的方法。此选项适用于短时间运行的程序,尤其是那些执行时间不集中在少数“热点”方法中的程序。如果在包含一些热点方法的长时间运行的程序上使用-Xquickstart选项,此选项可能会导致性能下降。

与其他非标准-X选项一样,-Xquickstart选项的实施和存在可能会在不通知的情况下进行修改。

可以减少MMI上限计数器,以加快方法的JIT编译。或者增加它来达到相反的效果。这是通过使用环境变量IBM_MIXED_MODE_THRESHOLD来实现的,与其他环境变量一样,它需要在运行JVM进程的shell实例中设置。自然,这个变量是在启动JVM进程之前设置的,对JVM中执行的所有方法都有效。

将IBM_MIXED_MODE_THRESHOLD设置为0可以禁用MMI,这样当* * *加载到JVM中时,所有方法都可以立即被JIT编译。

IBMJVM运行时模式如下:

MMI和JIT启用。

这是默认的IBM。

JVM设置。

◆MMI禁用,JIT启用

所有的方法都是在***运行之前编译的,即JVM的启动时间可能会很慢,但是后来的性能会很好。

◆MMI和JIT都禁用

JVM是一个纯解释系统。所有的代码都不会进行编译。禁用JIT同时还会自动禁用MMI,并将IBM_MIXED_MODE_THRESHOLD设置为0,这样可以有效地禁用MMI,但是不会禁用JIT。

MMI是一个非常有效的解释器,利用宿主平台上的程序集代码来达到***的优化。虽然JIT并不是JVM的一个集成部分,但却以一个共享库(libjitc)的形式提供了,它与MMI紧密地结合在一起,JIT和MMI是IBMJVM中紧密结合的两种技术。

在JavaHotSpotVM或经典的JIT模式中使用的是SunJVM1.3.1,Sun的JIT实现并不与IBM的JIT完全相同;SunHotSpotJVM1.4.1中根本没有JIT。当将Java程序从SunJVM1.3.1或SunJVM1.4.1迁移到IBMJVM上时,在一些非常罕见的情况中可能会出现问题,问题的范围从性能的下降,到代码会产生不正确的结果,以及JVM的挂起、崩溃和出现一些异常。

上述内容就是JVM for Linux JIT诊断技术的简介是什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/44232.html

(0)

相关推荐

  • 如何安装xtrabackup

    技术如何安装xtrabackup这篇文章主要为大家展示了“如何安装xtrabackup”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何安装xtrabackup”这篇文章吧。

    攻略 2021年11月6日
  • 排山倒海的倒的意思,排山倒海形常用来形容什么

    技术排山倒海的倒的意思,排山倒海形常用来形容什么排山倒海这个词语常用来形容力量强盛,声势浩大排山倒海的倒的意思。【出自】:宋·杨万里《六月二十四日病起喜雨》:“病势初来敌颇强,排山倒海也难当。”
    【解释】:初来对抗很强势

    生活 2021年10月27日
  • Angular和SAP C4C的事件处理队列分析

    技术Angular和SAP C4C的事件处理队列分析本篇内容主要讲解“Angular和SAP C4C的事件处理队列分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Angul

    攻略 2021年11月10日
  • ACS与PL/SQL的工作情况分析

    技术ACS与PL/SQL的工作情况分析本篇内容主要讲解“ACS与PL/SQL的工作情况分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ACS与PL/SQL的工作情况分析”吧

    攻略 2021年11月15日
  • 设计模式22-策略模式,Strategy)

    技术设计模式22-策略模式,Strategy) 设计模式22-策略模式(Strategy)策略模式的重点在于其实现可以去感知随意替换,根据不同的场景调用不同的实现。设计模式22-策略模式(Strateg

    礼包 2021年10月28日
  • Python线性回归分析

    技术Python线性回归分析这篇文章主要介绍“Python线性回归分析”,在日常操作中,相信很多人在Python线性回归分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python线性回

    攻略 2021年11月9日