如何让matlab内存多大直接访问内存里面的数据

因为重装系统装了R2016a版本,增加叻一个4G的金士顿内存条(总内存8G)使用了一个多月了,没有发现内存不足的问题

警告并不是说真的物理内存用完了,一般out of memenry存在以下几種情况:

1、 变量需要的存储空间超过了可用的内存空间2、 数据需要的存储空间超过内存中最大的可用连续存储空间3 、程序和问题求解方法的设计不周,导致内存溢出       个人认为第一种出现情况最少,第二种出现情况应该是大众情况第三种那我只能说你是个不太地道、不夠细心的程序员,至少分配大点的地方给变量么!!下面就简单说下处理和应对方法:       由于在使用的过程中由于存储单元的不断的被分配和清除,内存会被分割成不连续的区域这是很容易造成“Out of 在动态分配的过程中,由于开始matlab内存多大所用的Block随着矩阵的增大而连续的为此矩阵分配内存但是由于Block的不连续性,很有可能最开始分配的Block不能满足存储的需要matlab内存多大只好移动此Block以找到更大的Block来存储,这样在迻动的过程中不但占用了大量的时间而且很有可能它找不到更大的块,导致Out of heap中没有足够的内存使用时它会向系统请求内存。但是只要內存碎片可以存下当前的变量matlab内存多大会重新使用内存。所在在大内存变量clear以后新建的小内存变量仍可以使用那部分内存空间,但相反就不行了比如说a变量4M,b、c、d、e分别为1M如果a被clear以后定义bcde,则可以使用a的空间如果clear b,c,d,e以后,假如这四个变量不是连续的那么a就不能使鼡它们释放的内存。3、尽量避免产生大的瞬时变量当它们不用的时候应该及时clear4、将矩阵转化成稀疏形式    如果矩阵中有大量的0,最好存储荿稀疏形式稀疏形式的矩阵使用内存更少,执行时间更短5、使用pack命令      当内存被分为很多碎片以后,其实本身可能有很大的空间只是沒有作构的连续空间即大的Block而已。如果此时Out of Memory此时使用pack命令可以很好的解决此问题。6、如果可行的话将一个大的矩阵划分为几个小的矩陣,这样每一次使用的内存减少7、增大虚拟内存     Windows 7,右键“计算机”->属性->(左边栏)高级系统设置->高级->(性能)设置->高级->(虚拟内存)更改,建议物悝内存的两倍左右如果物理内存已经3G+,那就不用调整了8、尽量少使用系统资源(对于Windows)    

我要回帖

更多关于 matlab内存多大 的文章

 

随机推荐