gpt4 book ai didi

java - JIT 自动内联的方法的大小是多少?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:45:30 27 4
gpt4 key购买 nike

我听说 JIT 会自动内联小方法,例如 getter(它们大约有 5 个字节)。边界是什么?有没有 JVM 标志?

最佳答案

HotSpot JIT 内联策略相当复杂。它涉及许多启发式方法,例如调用方方法大小、被调用方方法大小、IR 节点计数、内联深度、调用计数、调用站点计数、抛出计数、方法签名等。

访问器方法(getters/setters)和普通方法(字节码数少于 6)跳过了一些限制。

相关源码大部分在bytecodeInfo.cpp .
请参阅 InlineTree::try_to_inlineshould_inlineshould_not_inline 函数。

控制内联的主要 JVM 标志是

-XX:MaxInlineLevel (maximum number of nested calls that are inlined)
-XX:MaxInlineSize (maximum bytecode size of a method to be inlined)
-XX:FreqInlineSize (maximum bytecode size of a frequent method to be inlined)
-XX:MaxTrivialSize (maximum bytecode size of a trivial method to be inlined)
-XX:MinInliningThreshold (min. invocation count a method needs to have to be inlined)
-XX:LiveNodeCountInliningCutoff (max number of live nodes in a method)

关于java - JIT 自动内联的方法的大小是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36585250/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com