gpt4 book ai didi

java - 在运行时减少 Java 中的最大堆栈大小

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:18:57 26 4
gpt4 key购买 nike

我正在尝试编写一个 junit 测试来防止一段代码陷入无休止的迭代,最终导致 StackOverflow。

所以我正在寻找一种在运行时减少堆栈大小的方法,以便 Junittest 失败得更快。

将最大堆栈设置为 jvm 参数是不可能的,因为该测试是更大测试套件的一部分。

最佳答案

您可以运行一个递归方法,它会自行运行给定的次数,然后执行给定的操作。虽然听起来很不稳定 :(

类似于:

public void eatStackThenExecute(int depth, Runnable action)
{
// Maybe put some locals here (and use them) to eat more stack per iteration?
if (depth == 0)
{
action();
}
else
{
eatStackThenExecute(depth - 1, action);
}
}

编辑:智能 JVM 可能会在这里优化尾部调用,因此我们可能需要在递归调用之后做“某事”以阻止这种情况发生...

讨厌东西:(

关于java - 在运行时减少 Java 中的最大堆栈大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/980474/

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