日期:2014-05-20  浏览次数:20673 次

生成的数组太大,内存不够用该怎么办??就这20分了
我想生成一个随机矩阵,需要一个大规模的(几十万行甚至更多),用二位数组的话内存肯定不够用,请教高手有什么高招?

------解决方案--------------------
稀疏矩阵的话可以用比较简单的方式来表示,否则的话我看只好存到文件里了。
------解决方案--------------------
加大虚拟内存?
加大运行程序的最大内存
比如tomcat的话可以设置他的最大内存设置为大一点
不过不建议这么做

那就是文件,分批处理了
如楼上所说的
------解决方案--------------------
内存不够的话只能存到硬盘上了,其实跟windows的虚拟内存处理方法类似,需要自己设计一个类来处理
1.把矩阵划分成小区域,比如(100*100)作为最小存储单位,类似操作系统里内存 "页 "的概念
2.为各个小区域编号,类似于内存地址
3.需要一个登记表,记录哪些小区域在内存里,哪些在硬盘上
4.设计一个自己的矩阵类来表示矩阵,该类会在矩阵行列达到一定数量时自动把矩阵的内容存到磁盘的文件里,并且自动把请求的不在内存的小区域的内容读到内存里
5.还涉及到哪些小区域需要淘汰的算法问题

总之跟windows操作系统内存管理类似,照葫芦画摸样就能解决你的问题了.