当前位置:  开发笔记 > 编程语言 > 正文

Solaris上的StackOverflowError但Linux/Windows上没有

如何解决《Solaris上的StackOverflowError但Linux/Windows上没有》经验,为你挑选了1个好方法。

我有一个Java应用程序,它使用在Linux和Windows上运行良好的Xerces解析大型xml架构(.xsd),但在Solaris上提供StackOverflowError,具有完全相同的输入和配置.我知道Xerces使用递归来验证xml架构,但由于它在Windows和Linux上没有出现任何问题,我非常有信心它可以在任何地方运行.

为什么会这样?有解决方法吗?



1> alves..:

根据此页面,默认堆栈大小取决于操作系统.

Sparc: 512

Solaris x86: 320(在5.0及更早版本中是256之前)(更新:根据此页面,主线程堆栈的大小来自ulimit.主线程堆栈由vm人为地减少到-Xss值)

Sparc 64位: 1024

Linux amd64: 1024(在5.0及更早版本中为0)(更新:默认大小来自ulimit,但我可以用-Xss减少)

Windows: 256(也在这里)

您可以使用-Xss标志更改默认设置.例如:

java ... -Xss1024k ... 

将默认堆栈大小设置为1Mb.

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有