jvm 《三B》我的应用程序有很多线程,内存不足,为什么?

版权声明:本文为博主原创文章,转载注明出处,欢迎多多交流,乐在沟通,有需要请联系邮箱:[email protected] https://blog.csdn.net/weixin_42749765/article/details/87451776

 

您可能遇到了线程的默认堆栈大小问题。在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是每个线程允许的最小堆栈空间量。

猜你喜欢

转载自blog.csdn.net/weixin_42749765/article/details/87451776