这个想法是帮助确定给定Java应用程序的最佳堆栈大小。
可以使用这些信息中的一个来创建堆栈大小范围表,线程在退出时可以修改该表单,可以定期转储以及在应用程序退出时进行转储。
编辑:这是在客户机上运行实际工作负载的情况下,我无法获得分析器访问权限。
编辑2:回答中的一个问题,每个线程大约需要256Kb的堆栈空间,我一直在想真正需要多少(我也在想这个问题可能不太相关,因为或许会按需分配堆栈空间)。我们有一个基于消息传递和高度线程化的应用服务器,可在从ARM手持设备到八核Linux再到中端和大型机器上运行 - 很好地了解在具有许多消息处理程序的系统上我们可以在哪里(以及是否)可以将堆栈空间与堆进行转换。
有一些类似的问题很有意思,但它们是本地/操作系统特定的: