out of memory的解决方案
来源:互联网 发布:捉鬼的软件 编辑:程序博客网 时间:2024/06/10 15:07
在使用大矩阵的时候,会遇到out of memory的问题,这个让人很纠结,解决的方法一个是从电脑方面,一个就是自身的程序优化问题。从网站各种资料和官方的help中总结了一些。
首先要知道matlab是如何存储矩阵的,Matlab中矩阵是以Block,也就是块的形式存储的。也就是说,当Matlab在为即将存储的矩阵划分块时,如果没有相应大小的连续内存,即使实际内存没有被完全使用,他还是会报告“Out of Memory”。
下面就是一些方案让我们高效的去使用内存。
1、为矩阵变量预制内存而不是动态分配,意思就是你在用数据的使用,有个初始化,例如有个矩阵a,在开始就分配a = zeros(1, 1000);
2、尽量早的分配大的矩阵变量,意思就是哪个矩阵大,你先分配哪个,c = rand(2.1e6,1);cleara = rand(1e6,1);b = rand(1e6,1);要比a = rand(1e6,1);b = rand(1e6,1);clearc = rand(2.1e6,1);节约很多
3、尽量的重复使用变量(跟不用的clear掉一个意思)
4、将矩阵转化成稀疏形式,如果矩阵中有大量的0,最好存储成稀疏形式。稀疏形式的矩阵使用内存更少,执行时间更短。
5.使用pack命令,最好让matlab程序分段运行,在每一段运行前,在matlab命令行中敲入"pack"。
当内存被分为很多碎片以后,其实本身可能有很大的空间,只是没有作构的连续空间即大的Block而已。如果此时Out of Memory,此时使用pack命令可以很好的解决此问题。
6.如果可行的话,将一个大的矩阵划分为几个小的矩阵,这样每一次使用的内存减少。
7.增大内存,这里是物理内存
8、增大内存,这里是虚拟内存,右键“我的电脑”->属性->高级->性能->设置,从而改变其虚拟内存。
9、尽量少时用系统资源(对于Windows),Windows中字体、窗口等都是要占用系统资源的,所以在Matlab运行时尽量不要打开不用的窗口。
10、打开3G开关,右键点击我的电脑 ->属性 -> 高级 ->启动和故障恢复 -> 设置 ->编辑。
进入boot.int,将你的系统名
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="MicrosoftWindows XP Professional "
改为
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="MicrosoftWindows XP Professionalwith 3GBswitche" /3gb
重新启动,效果立现,在matlab中输入feature('memstats'),可以看到现在的实际内存已经变为了3GB。
- out of memory的解决方案
- matlab 编写程序时出现"out of memory"错误的 解决方案
- 项目经验分享-----有效避免OOM(Out of Memory)问题的解决方案
- Matlab中“Out of Memory”问题解析及解决方案汇总
- eclipse out of memory错误的解决方法
- Linux 的 Out-of-Memory (OOM) Killer
- Linux 的 Out-of-Memory (OOM) Killer
- tomcat "out of memory" error 的解决办法
- delphi写的程序out of memory??
- Linux 的 Out-of-Memory (OOM) Killer
- Linux 的 Out-of-Memory (OOM) Killer
- matlab out of memory 的问题
- jvm的out of memory和GC
- Android oom(out of memory)的疑难问题
- 一个out of socket memory的问题
- 一次out of memory引发的思考
- intellij idea "out of memory"的问题解决
- python的out of memory问题
- hadoop本地库与系统版本不一致
- 强大的css
- 问题:传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。此 RPC 请求中提供了过多的参数。最多应为 2100
- XCode7 之后免证书真机调试注意事项以及问题总结
- Java中输出当前时间的各种方法
- out of memory的解决方案
- 关于父类继承那点事
- MFC 浏览文件目录,获取路径传到编辑框
- xcode8 iOS10上关于NSPhotoLibraryUsageDescription NSCameraUsageDescription 等问题
- 2017微软秋季校园招聘在线编程笔试
- 【 Makefile 编程基础之四】详解Makefile 函数的语法与使用
- sublime3中如何快速生成html头部信息
- thinkphp设置session无效的问题
- jquery checkbox全选,全不选,反选方法,jquery checkbox全选只能操作一次