java - 运行一段时间后,能否获得Java中线程实际使用的堆栈大小?

标签 java stack-size

这个想法是帮助确定给定 Java 应用程序的最佳堆栈大小。

可以用这些信息做的一件事是创建一个堆栈大小的范围表,线程可以在退出时修改它,并且可以定期和在应用程序退出时转储。

编辑:这是在具有真实工作负载的客户机器上运行的上下文中,我无法获得探查器访问权限。

EDIT2:作为对一个答案的回应,在 (IIRC) 每个线程 256Kb 时,我想知道这与所需的现实有多接近(我也想知道这个问题是否不是很相关,因为 < em>也许 堆栈空间是按需分配的)。我们有一个基于消息传递和高度线程化的应用程序服务器,可以在从 ARM 手持设备到八核 Linux,再到中型机和大型机的所有设备上运行 - 最好了解我们可以在哪里(以及是否)进行交易具有许多消息处理程序的系统上堆的堆栈空间。

有一些类似的问题很有趣,但它们是本地/操作系统特定的:

最佳答案

堆栈内存将很难获得。

你能做的最好的,而且很容易,是通过 MemoryMXBean 使用 JVM 内存.

关于java - 运行一段时间后,能否获得Java中线程实际使用的堆栈大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/826206/

相关文章:

java - Java 包围字符方法

c - 安全线程堆栈大小?

c++ - 多个 vs 项目中的堆栈大小

java - 使用 Java 中的 Regex 进行模式化并从未知形式中挑选出所需的值

java - 在java中存储来自传感器的数据的最快方法

java - 如何在 Eclipse 中设置 -Xss?

c++ - 如何确定一个对象是否应该在堆栈上?

node.js - 如何更改 NodeJS 中的堆栈大小限制?

java - 创建一个包含用户无法访问的敏感信息的 jar

java - 如何在 BD 中播放数据数组