锁定老帖子 主题:提问:如何超越JVM内存限制?
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-12-11
zt371 写道 系统可用内存并不等于JVM可用内存。
32位的Windows 2003下单个JVM测试的是2G。所以要充分利用内存,就要考虑跑多个JVM。据说Sun的Solaris可以到8G。 是的,所以为这这个问题很郁闷。 现在这一个报表就是要突破其内存限制(2G),我要么选择手工实现该报表(自己算一点就存一点,然后再继续算),但是这个方法代价有点高。对于我这种流水清当来说,客户并不要求实时能出来,只要能出来就是了,我当然是希望借助工具实现,可这个工具是一次全部把数据拉出来,一行行去算,这样做,数据一大,就有可能达到内存的限制了,从而导致jvm溢出,而推出程序。 |
|
返回顶楼 | |
发表时间:2006-12-11
SolarisSPARC版本没用过;
但是SolarisX86版本单个进程仍受限于最大3.5G,也就是说JVM使用的内存也不会超过3.5G,(操作系统最大支持32GB的物理内存)。 |
|
返回顶楼 | |
发表时间:2006-12-12
TOMCAT在WINDOWS 2003下最多貌似1.6G
我也有相同的报表问题, 现在解决办法是在DB里面做TEMP TABLE, 然后及时释放JVM内存. 目前速度还可以. |
|
返回顶楼 | |
发表时间:2007-02-01
The maximum heap size of a Java application is limited by three factors: the process data model (32-bit or 64-bit) and the associated operating system limitations, the amount of virtual memory available on the system, and the amount of physical memory available on the system. The size of the Java heap for a particular application can never exceed or even reach the maximum virtual address space of the process data model. For a 32-bit process model, the maximum virtual address size of the process is typically 4 GB, though some operating systems limit this to 2 GB or 3 GB. The maximum heap size is typically -Xmx3800m (1600m) for 2 GB limits), though the actual limitation is application dependent. For 64-bit process models, the maximum is essentially unlimited
简单的说就32位处理器虽然可控内存空间有4GB,但是具体的操作系统会给一个限制,这个限制一般是2GB-3GB,而64bit以上的处理器就不会有限制了。 |
|
返回顶楼 | |