事务引擎中使用了一个核心类。我对大量并发事务进行了测试,导致致命的堆栈溢出异常。我想知道是否有任何方法可以测量有多少堆栈内存可用以避免异常。
我正在研究一种动态的方法,因为对并发事务的数量设置硬限制并不理想。
事务引擎中使用了一个核心类。我对大量并发事务进行了测试,导致致命的堆栈溢出异常。我想知道是否有任何方法可以测量有多少堆栈内存可用以避免异常。
我正在研究一种动态的方法,因为对并发事务的数量设置硬限制并不理想。
试试 Java VisualVM。它来自 Oracle,并包含在 JDK 中。你可以在这里找到它:
${JDK}/bin/jvisualvm.exe
几乎所有您想了解的有关 Java 应用程序性能的信息都可以通过它观察到。
如果您需要,这里有一个快速教程,尽管它实际上不需要太多解释。
您可以使用参数设置 Java 程序的堆栈大小-Xss
(或"-XX:ThreadStackSize
参见Java HotSpot VM 选项)。
但是,一旦设置,Java 堆栈大小就不能动态更改。