cha*_*art 56 java size stack jvm
有没有default XSS sizes
人为各种版本的Sun/Oracle JVM以及不同的操作系统找到了单个JVM文档列表?
我已经能够在jrockit jdk 5.0 docs中找到这个表,但这对那些使用"普通"Sun/Oracle JVM的人没有帮助.
我确实感谢XSS
每个操作系统(和JVM版本)的值会有所不同,所以可能没有一个文档列出了所有最近的组合.但是,如果这里的任何读者都知道任何单个文档至少列出每个 JVM版本(或至少1.6和1.5)的默认XSS值,或者即使仅针对某些操作系统,那将是一个很好的开始.
我要补充一点,这是有价值的原因是我们经常看到人们推荐(错误的,我认为)有人可以通过改变XSS
价值来解决问题.但是如果你不知道自己的默认值,那么就无法知道你是否通过某人推荐的改变来提高或降低价值.他们通常不会指出他们所使用的版本/操作系统,因此他们的建议是否会"帮助"你是一个废话.
甚至比某些文档更好,如果有人知道查询JVM以获取当前值的方法,无论是从命令行还是通过API调用,这将更有价值.谢谢.
plo*_*ckc 73
尝试:
java -XX:+PrintFlagsFinal -version | grep ThreadStackSize
Run Code Online (Sandbox Code Playgroud)
Ben*_*Ben 23
此信息现在显示在Oracle Hotspot FAQ中 http://www.oracle.com/technetwork/java/hotspotfaq-138619.html#threads_oom
您可能遇到了线程的默认堆栈大小问题.在Java SE 6中,Sparc的默认值在32位VM中为512k,在64位VM中为1024k.在x86 Solaris/Linux上,32位VM为320k,64位VM为1024k.
在Windows上,从二进制文件(java.exe)中读取默认的线程堆栈大小.从Java SE 6开始,该值在32位VM中为320k,在64位VM中为1024k.
您可以通过使用-Xss选项运行来减少堆栈大小.例如:
java -server -Xss64k
请注意,在某些版本的Windows上,操作系统可能会使用非常粗略的粒度来舍入线程堆栈大小.如果请求的大小小于默认大小1K或更多,则堆栈大小向上舍入为默认值; 否则,堆栈大小向上舍入为1 MB的倍数.
64k是每个线程允许的最小堆栈空间量.
cha*_*art 16
这个问题的答案首次发布于 2011 年,从那以后的几年里得到了各种各样的答案,这是一次多么漫长、奇怪的旅程。有些人建议使用-XX:+PrintFlagsFinal
JVM 参数,这对大多数人来说可能是最好的,但对 Windows 没有帮助(总是报告 0)。有些人共享各种资源(针对各种 JVM 和版本),其中一些确实试图帮助回答这个问题,但通常没有,或者没有为那些可能在 Windows 上运行 Oracle JVM 的人澄清。
这里至少更清楚一点:Java 11(2021 年)是 Oracle JVM 当前最新的 LTS(长期支持版本)版本,我找到了该当前版本的文档,其中列出了特定的默认值XSS(又名 ThreadStackSize),适用于不同的操作系统。它位于https://docs.oracle.com/en/java/javase/11/tools/java.html#GUID-3B1CE181-CD30-4178-9602-230B800D4FAE。以下是它的报告内容(以防将来链接中断):
- Linux/x64(64 位):1024 KB
- macOS(64 位):1024 KB
- Oracle Solaris/x64(64 位):1024 KB
- Windows:默认值取决于虚拟内存
遗憾的是,Windows 用户仍然想知道:“取决于虚拟内存”意味着什么?我想这当然意味着 Windows 本身的虚拟内存,但即便如此,我们如何将其转换为我们所期望的 jvm 线程的实际堆栈大小?
回到我最初的问题:我想知道默认值是什么,因为经常有人建议解决某些问题是更改-XSS
jvm arg(更改为他们建议的某个值)。但是我们如何知道我们是否将其设置为大于或小于默认值呢?根据要解决的问题,了解这一点至关重要!
10年后,我想这是一个可能无法完成的神话般的探索。但谁知道呢,也许现在或将来看到这一点的人可能会带着新信息前来救援。也许 Java 17(预期的下一个 LTS 版本)可能会改变一些事情。(需要明确的是,正如我所写,我共享的该页面没有适用于 Java 13 或更高版本的版本。)
如果没有别的事,我把这个留给后人,至少帮助其他面临这个问题的人知道他们并没有疯狂地发现很难得到一个直接的答案(特别是关于 Windows 的默认 XSS 值,以及是否改变它会相对于默认值增大或减小大小)。
归档时间: |
|
查看次数: |
63738 次 |
最近记录: |