程序out of memory 怎么办 20

不要说改虚拟内存,我试过,没用,扫描一个大文件会出错... 不要说改虚拟内存,我试过,没用,扫描一个大文件会出错 展开
 我来答
pieryon
2016-03-18 · 知道合伙人数码行家
pieryon
知道合伙人数码行家
采纳数:14411 获赞数:166867
获取软件设计师高级职称 万达金融最佳创新奖

向TA提问 私信TA
展开全部

一般来说,使用的矩阵的维数一旦过万就会引起内存溢出。

解决办法 1:打开计算机的3GB开关。

具体做法是:

右键点击我的电脑 -> 属性 -> 高级 -> 启动和故障恢复 -> 设置 -> 编辑。

进入boot.int,将你的系统名

  multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional "

  改为

  multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professionalwith 3GB switche" /3gb

重新启动,效果立现,在matlab中输入feature('memstats'),可以看到现在的实际内存已经变为了3GB。

解决办法 2:使用pack

  在matlab中,对于非稀疏的矩阵而言,只有整块的内存才能够被使用。比如你有两块内存,一块500M,一块200M,而矩阵所需的空间要600M,即使500+200>600,可你还是不能正常运行。而pack即为内存碎片的拼接方法。


  所以,最好让matlab程序分段运行,在每一段运行前,在matlab命令行中敲入"pack"。如下图所示:

可以将小内存碎片充分利用起来,积少成多,缓解内存危机。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式