有没有在JVM上标记任何硬性限制,以控制逃逸分析?(Is there any hard limit

2019-11-04 16:13发布

我一直在试图最近了解JVM逃生analyis。 我尝试了很多根据JVM选项组合的这个漂亮的答案 。 我的问题是,是否有放入系统上的选项值任何硬性限制? 像FreqInlineSizeMaxInlineLevel 。 JVM不会当真当我设置的选项来有些可笑值,如-XX:FreqInlineSize=65535会吗? 其实,我试过了。 但JVM没有抱怨。 所以,我真的不知道。

如果有一些硬性限制,那会是什么呢? 我在哪里可以找到描述这种事情的文件?


我一直试图找到一种方法来强制栈,而不是在堆上分配我的Protobuf消息和建设者的对象。 有时,它的工作原理。 但是当消息对象的字段数的增长,它停止工作。 我在互联网上搜索,但很少发现不少由于我关于这个问题的了解有限。 所以,这就是为什么我问。


JVM版本:Java的热点(TM)64位服务器VM(建立25.131-B11,混合模式)

Answer 1:

  • 选项你提到控制内联,而不是逃逸分析。
  • 有没有硬性限制一个这些值,或者更准确地说,限制为INT_MAX
  • 然而在实践中,内联和其它优化由其他限制,例如有界NodeCountInliningCutoff (未调谐), MaxNodeLimitNodeLimitFudgeFactor
  • 我怀疑你会发现比其他这些事情多文档的源代码 。


文章来源: Is there any hard limit on the JVM flags to control escape analysis?