当前位置: 首页 > 知识库问答 >
问题:

JVM的Xss选项只覆盖Java栈还是也包括本机栈?

谭坚诚
2023-03-14

我知道一些像Harmony JVM这样的虚拟机将Java堆栈和本机堆栈放在一个堆栈中,并使用M2N框架为每个线程执行堆栈展开。

其他一些JVM似乎将它们分开。我的问题是,设置JVM最大堆栈大小的JVM的Xss选项是否包括Java堆栈的总大小,或者也包括本机堆栈的大小?

共有1个答案

易刚捷
2023-03-14

我对此没有明确的答案,但当您查看hotspot成为默认vm时发布的一些文档时,您可以看到这一点,其中指出:

HotSpot没有独立的本机和Java堆栈

另一个轶事证据可以在这篇处理堆栈大小调整的博客文章中找到:

请注意,您的操作系统完全有可能将-Xss参数指定的堆栈大小的值四舍五入。注意这一点。

因此,热点似乎每个线程都有一个堆栈,它实际上是本机的操作系统提供的堆栈(因此四舍五入)。

这里还有一些证据:

在HotSpot实现中,Java方法与C/C本机代码共享堆栈帧,即用户本机代码和虚拟机本身

最后,在openjdk源代码中:

//HotSpot没有单独的本机堆栈和Java堆栈

 类似资料:
  • 大家来说说。本人是前端,想做全栈的话。选nestjs 还是python 还是java?

  • 所有这些都可以通过以下链接获得:http://www.scala-sbt.org/sbt-native-packager/archetypes/java_app/customize.html 我无法让它修改默认的1024M值。

  • 问题内容: 它在这里说-Xss用于“设置线程堆栈大小”,这到底是什么意思?谁能帮我理解这一点? 问题答案: Java应用程序中的每个线程都有其自己的堆栈。堆栈用于保存返回地址,函数/方法调用参数等。因此,如果线程倾向于通过递归算法处理大型结构,则所有这些返回地址等都需要大型堆栈。使用SunJVM,可以通过该参数设置该大小。

  • 从文档中可以看出,-Xss用于设置JVM的堆栈大小。但我对这一说法感到非常困惑。 在Java中,每个线程都有自己的堆栈。-Xss指定的数字是否: > 线程的每个堆栈的大小。e、 如果将-Xss设置为256K,则每个线程将有一个256K大的堆栈。因此,10个线程将总共使用2560K。 非常感谢你。 编辑: 谢谢你的回答。看起来像是上面的(2)senario-Xss指定特定线程的最大堆栈大小。 然后我

  • 本文向大家介绍Java虚拟机JVM堆栈区,包括了Java虚拟机JVM堆栈区的使用技巧和注意事项,需要的朋友参考一下 以下是了解JVM堆栈区域的一些关键点- 在创建线程期间,Java虚拟机将创建一个单独的堆栈。 JVM在此堆栈上仅执行两个操作。操作是推入(即插入)和弹出(即删除)。 当前正在执行线程时,与其关联的堆栈称为运行时堆栈。 线程完成的每个方法调用,中间计算,局部变量的分配,调用参数等都作为

  • 我需要在Jersey中创建一个自定义ExceptionMapper来处理Jackson返回的JsonProcessingException。 Jackson库已经以JsonMappingExceptionMapper.java和JsonParseExceptionMapper.java(链接)的形式包含了此异常的ExceptionMapper提供程序。 如果我在“my.package”中为这个异常