如何确定最大堆栈大小限制?

发布于 2024-12-05 16:33:29 字数 110 浏览 1 评论 0原文

我想从 Java 中以编程方式确定堆栈的最大大小(由 -Xss 设置的大小)。我该怎么做?

或者,由于我的 Java 模块也使用本机代码模块,因此我可以通过 JNI 来完成此操作;但如何呢?

I want to determine the maximum size of the stack programmatically from within Java (the size set by -Xss). How do I do this?

Alternatively, as my Java module also uses a native code module, I would be able to do this via JNI; but how?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

亽野灬性zι浪 2024-12-12 16:33:29

使用 ManagementFactory.getRuntimeMXBean().getInputArguments() 访问传递给 VM 的所有参数。

Use ManagementFactory.getRuntimeMXBean().getInputArguments() to access all arguments passed to VM.

墨小墨 2024-12-12 16:33:29

也许不是最佳实践,但肯定很简单:我会编写一个递归方法来计算一个值,重复直到 java.lang.StackOverflowError 并查看计数器。

public class Test
{

static void recur(AtomicInteger start)
{
    start.incrementAndGet();
    recur(start);
}

public static void main(String[] args) throws ParseException
{
    AtomicInteger start=new AtomicInteger(0);
    try
    {
        recur(start);
    }
    catch (java.lang.StackOverflowError e)
    {
        /**/
    }
    System.out.println(start);

}
}

Maybe not best practice but certainly straight-forward: I'd write a recursive method counting up a value, recurring until java.lang.StackOverflowError and look at the counter.

public class Test
{

static void recur(AtomicInteger start)
{
    start.incrementAndGet();
    recur(start);
}

public static void main(String[] args) throws ParseException
{
    AtomicInteger start=new AtomicInteger(0);
    try
    {
        recur(start);
    }
    catch (java.lang.StackOverflowError e)
    {
        /**/
    }
    System.out.println(start);

}
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文