Java程序内存问题

Java程序运行于jvm之上,jvm是操作系统中的一个进程,在32位的操作系统上,一个进程虚拟内存最大是4G,进程可以用的内存是2G,java是如何处理需要大量内存的程序?jvm需要不停swap?如果是这样的话,性能是否不可接受?

确实需要不停地SWAP,不过这是操作系统的事情,
操作系统对内存和虚拟内存的分页都有相应的置换算法,比如说,FIFO, LIFO,LRU,LFU
总之操作系统会负责把文件缓存到内存中,当然如果频繁的读取这个数量级比较大的文件,
确实比较消耗性能,
所以,结构化的数据尽量都放到数据库中,通过相应的索引机制,就算在上亿条数据中,
我们也能轻易的找到我们需要的数据。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-21
内存是4g,但是你一个程序不是都只能从内存读的啊,可以从硬盘啊,硬盘就没有限制的啊。如果你得程序需要超过2g的内存,那我觉得应该用更好的机器了吧
相似回答
大家正在搜