锁定老帖子 主题:提问:如何超越JVM内存限制?
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-12-08
我现在的应用部署在32位PC服务器上,win,总是有那种报表会相当大,运算需要的内存可能超过1.5G,每当这个时候应用就会异常退出------我们目前是直接在weblogic下运行,也考虑过单独启动一个服务来执行这种大报表,但是万一还是有超出内存限制的报表,还是解决不了,所以现在也还没改这个。在不改变程序情况下(报表计算并不是自己的写的代码,而是第三方产品),能否有方法解决这个问题。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-12-08
Java Doc里面没有说有限制。
估计是受限于操作系统吧。32bit Windows上最多可管理4G还是8G内存。 |
|
返回顶楼 | |
发表时间:2006-12-08
Lucas Lee 写道 Java Doc里面没有说有限制。
估计是受限于操作系统吧。32bit Windows上最多可管理4G还是8G内存。 是2G。 这确实受限于操作系统的进程模型。但是我们的应用是否有方法能突破来解决这问题呢?随便想的,对于我这个提问,好像不大能指望解决了。郁闷! 通常的工程应用还是可以绕过大内存操作,但是有的专业领域,如卫星图像处理,大约会有大内存操作吧?不知道在这类方面,是否有Java的应用。 |
|
返回顶楼 | |
发表时间:2006-12-08
win32 XP/2003下面,通过修改boot.ini,是可以让应用空间到3G的。
|
|
返回顶楼 | |
发表时间:2006-12-08
lixigua 写道 Lucas Lee 写道 Java Doc里面没有说有限制。
估计是受限于操作系统吧。32bit Windows上最多可管理4G还是8G内存。 是2G。 这确实受限于操作系统的进程模型。但是我们的应用是否有方法能突破来解决这问题呢?随便想的,对于我这个提问,好像不大能指望解决了。郁闷! 通常的工程应用还是可以绕过大内存操作,但是有的专业领域,如卫星图像处理,大约会有大内存操作吧?不知道在这类方面,是否有Java的应用。 这么说我可以给tomcat的jvm虚拟机分配2g的内存了? JAVA_OPTS='-Xms1024 -Xmx2000 ?? |
|
返回顶楼 | |
发表时间:2006-12-08
avaj 写道 lixigua 写道 Lucas Lee 写道 Java Doc里面没有说有限制。
估计是受限于操作系统吧。32bit Windows上最多可管理4G还是8G内存。 是2G。 这确实受限于操作系统的进程模型。但是我们的应用是否有方法能突破来解决这问题呢?随便想的,对于我这个提问,好像不大能指望解决了。郁闷! 通常的工程应用还是可以绕过大内存操作,但是有的专业领域,如卫星图像处理,大约会有大内存操作吧?不知道在这类方面,是否有Java的应用。 这么说我可以给tomcat的jvm虚拟机分配2g的内存了? JAVA_OPTS='-Xms1024 -Xmx2000 ?? -Xms1024 -Xmx2000 的含义请google |
|
返回顶楼 | |
发表时间:2006-12-08
可以设置的最大JVM内存和JVM版本以及操作系统版本有关,一般Windows下1200-1500M左右,Linux下最大能到2600M;
具体可以使用命令 java -XmxXXXXM -version 来进行测试(如:java -Xmx1024M -version),然后逐渐的增大XXXX的值,如果执行正常就表示指定的内存大小可用,否则会打印错误信息。 |
|
返回顶楼 | |
发表时间:2006-12-10
lixigua 写道 Lucas Lee 写道 Java Doc里面没有说有限制。
估计是受限于操作系统吧。32bit Windows上最多可管理4G还是8G内存。 是2G。 这确实受限于操作系统的进程模型。但是我们的应用是否有方法能突破来解决这问题呢?随便想的,对于我这个提问,好像不大能指望解决了。郁闷! 通常的工程应用还是可以绕过大内存操作,但是有的专业领域,如卫星图像处理,大约会有大内存操作吧?不知道在这类方面,是否有Java的应用。 32bit的寻址空间是2G,但windows可以用其他方式增大这个能力。我用过的一台跑windows advanced server的机器就有4G内存(4CPU),所以4G至少是支持的。 |
|
返回顶楼 | |
发表时间:2006-12-10
windows2003 server enterprise x86 支持 32G内存
|
|
返回顶楼 | |
发表时间:2006-12-10
系统可用内存并不等于JVM可用内存。
32位的Windows 2003下单个JVM测试的是2G。所以要充分利用内存,就要考虑跑多个JVM。据说Sun的Solaris可以到8G。 |
|
返回顶楼 | |