首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

64位windows操作系统上尽量不要使用32位JDK

2012-09-14 
64位windows操作系统下尽量不要使用32位JDK新产品发布,拿来试用。由于本机是win7_x64,但是为方便工作,机器

64位windows操作系统下尽量不要使用32位JDK

新产品发布,拿来试用。由于本机是win7_x64,但是为方便工作,机器安装了从32位的JDK1.5一直到64位的JDK1.6的4个JDK。为保证运行时能与大多数人的运行状况相同,依然采用了32位的jdk1.6来运行产品。

结果,我第一次碰到应用服务器刚起来就crash的问题。

生成的JVM的错误日志如下:

JVM线程堆栈应用程序中的每个线程都需要内存来存储器堆栈(用于在调用函数时持有局部变量并维护状态的内存区域)。每个 Java 线程都需要堆栈空间来运行。根据实现的不同,Java 线程可以分为本机线程和 Java 堆栈。除了堆栈空间,每个线程还需要为线程本地存储(thread-local storage)和内部数据结构提供一些本机内存。JVM堆栈大小-Xss 128k:设置每个线程的堆栈大小。JDK5.0以后每个线程堆 栈大小为1M,以前每个线程堆栈大小为256K。更具应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一 个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。JVM heap与JVM私有内存、JVM线程堆栈大小间的关系及平衡。线程栈的大小是个双刃剑,如果设置过小,可能会出现栈溢出,特别是在该线程内有递归、大的循环时时出现溢出的可能性更大,如果该值设置过大,就有影响到创建栈的数量,如果是多线程的应用,就会出现内存溢出的错误.
而对于此问题的解决,还有另外一篇文章http://www.blogsoncloud.com/jsp/techSols/java-lang-OutOfMemoryError-unable-to-create-new-native-thread.jsp。

热点排行