美文网首页
热点检测、方法内联、动态反优化

热点检测、方法内联、动态反优化

作者: 偷吃虾的猫 | 来源:发表于2020-07-24 23:04 被阅读0次

热点检测

 自适应优化通过利用有趣的程序属性解决了JIT编译的问题。实际上,所有程序都将大部分时间都花在执行少量代码上。Java HotSpot VM不会立即编译方法,而是立即使用解释器运行程序,并在运行时分析代码以检测程序中的关键热点。然后,它将本地代码优化器的注意力集中在热点上。通过避免不经常执行的代码(程序的大部分)的编译,Java HotSpot编译器可以将更多的注意力放在程序的性能关键部分上,而不必增加总的编译时间。随着程序的运行,热点监视将动态地继续进行,
 这种方法的一个微妙但重要的好处是,通过将编译延迟到代码执行了一段时间之后(以机器时间而非用户时间来衡量),可以收集有关代码使用方式的信息,然后加以利用进行更智能的优化。同样,减少了内存占用。除了在程序中收集有关热点的信息外,还会收集其他类型的信息,例如有关用于虚拟方法调用的主叫方关系的数据。

参考官方链接:https://www.oracle.com/java/technologies/whitepaper.html#method


方法内联

 Java编程语言中虚拟方法调用的频率是重要的优化瓶颈。一旦Java HotSpot自适应优化器在执行期间收集了有关程序热点的信息,它不仅将热点编译为本机代码,而且还会对该代码执行大量的方法内联。
 内联具有重要的好处。它大大降低了方法调用的动态频率,从而节省了执行这些方法调用所需的时间。但更重要的是,内联会产生更大的代码块,以供优化程序使用。这就产生了一种情况,大大提高了传统编译器优化的效率,克服了提高Java编程语言性能的主要障碍。
 内联与其他代码优化具有协同作用,因为它使它们更有效。随着Java HotSpot编译器的成熟,对大型内联代码块进行操作的能力将为将来的许多更高级的优化打开大门。

参考官方链接:https://www.oracle.com/java/technologies/whitepaper.html#method

方法内联个人笔记:Java 方法内联


动态反优化

 内联是一项重要的优化,但是传统上,对于像Java语言这样的面向动态对象的语言,执行内联一直非常困难。此外,尽管检测热点并内联它们调用的方法非常困难,但仍不足以提供完整的Java编程语言语义。这是因为用Java语言编写的程序不仅可以即时更改方法调用的模式,而且还可以将新的Java代码动态地加载到正在运行的程序中。
 内联基于全局分析的形式。动态加载显着使内联复杂化,因为它更改了程序中的全局关系。新类可能包含需要在适当位置内联的新方法。因此,即使在执行针对热点的代码时,Java HotSpot VM也必须能够动态地取消优化(然后在必要时重新优化)先前优化的热点。如果没有此功能,就无法在基于Java技术的程序上安全地执行常规内联。

参考官方链接:https://www.oracle.com/java/technologies/whitepaper.html#method

相关文章

  • 热点检测、方法内联、动态反优化

    热点检测  自适应优化通过利用有趣的程序属性解决了JIT编译的问题。实际上,所有程序都将大部分时间都花在执行少量代...

  • 方法内联

    JVM会自动的识别热点方法,并对它们使用方法内联优化。那么一段代码需要执行多少次才会触发JIT优化呢?通常这个值由...

  • JVM 虚拟机之编译优化

    本文主要是概念篇,总结和摘录了 JVM 对于编译优化中存在的几个核心概念: 热点探测、方法内联、逃逸分析、公共子表...

  • 第二十八篇: Swift属性

    函数内联 函数内联是一种编译器技术优化,它通过使用方法的内容替换直接调用该方法,从而优化性能。1)将确保有时内联函...

  • 关于原型图滚动条的设计

    两种方法,一是内联框架,一是动态面板,内联框架很简单就不说了,说说动态面板的。 首先,基础功能里右键设置有关于动态...

  • Jvm优化技术

    Jvm优化技术有:逃逸分析、方法内联 一:Jvm优化技术之逃逸分析 1:概念 JVM的优化技术,可以有效减少Jav...

  • Arxiv网络科学论文摘要11篇(2019-04-09)

    社交媒体上的热点; 动态网络的拟合优度检验; 含时网络的增量嵌入; 检测Reddit上违反宏规范的注释的混合方法;...

  • 内存优化

    检测内存的一般方法 1.静态检测法手动自动 2.动态检测法(instruments) 3.dealloc构造方法看...

  • JavaScript动态加载js和css

    动态加载js 参考:javascript 性能优化 动态加载css 参考: 动态加载 css 方法实现和深入解析 ...

  • iOS 内存优化

    1.1静态检测 手动 1.2静态检测 自动 2.动态检测方法 Instrument 第三方检测工具 开启工具 : ...

网友评论

      本文标题:热点检测、方法内联、动态反优化

      本文链接:https://www.haomeiwen.com/subject/skdelktx.html