java - 增加堆栈空间,独立于机器 - Java

标签 java stack

我的算法需要使用比默认允许的更多的堆栈空间。我是否必须增加每台机器上的堆栈空间,或者有没有办法将其包含在类中,以便它可以在每台机器上顺利运行。

最佳答案

后一种方法行不通——堆栈空间是一个启动参数,用于为Java进程本身分配空间。

当一切都已设置好以加载和执行该类时,根据定义,进程已经存在并且其堆栈大小也已确定。您无法在运行时修改 Xss

通常您要做的是分发一个启动脚本,该脚本使用适当的内存参数启动您的应用程序。你的类是如何被调用的?如果它是一个库,那么确保分配足够的内存是应用程序的工作,可以说您可以将其列为文档中的要求。

在极端情况下,您可以使用 Process 使用您想要的启动参数生成一个全新的 Java 进程 - 但是这很容易出错,需要假设 java 位于路径上(或者到处都存在相同的目录结构),您有权创建新进程,该新进程存在足够的内存/文件句柄,等等。这不是我想要的这样做,但如果你用尽了所有其他选项,它可能会在紧要关头让你渡过难关。

关于java - 增加堆栈空间,独立于机器 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9717751/

相关文章:

java - 如何从Firebase数据库中删除Geofire key -JAVA

java - Log4J – 运行时变量替换

c - 如何实现缓冲区溢出

assembly - 为什么我的引导加载程序的堆栈段位于 0x3FF(实模式 IVT 的末尾)?

javascript - DOMException 在 Chrome 中有堆栈,但在 Firefox 中没有

java - 如何创建二维数组的 ArrayList

java - 将 Android Activity 结果委托(delegate)给其他 Activity

java - 当 lambda 可能返回 null 时,如何使 IntelliJ IDEA 发出警告?

连接两个堆栈(一个堆栈在另一个堆栈之上)

C:如果参数从右向左压入,为什么会出现下面的情况? (64位操作系统,32位程序)