matlab内存溢出的解决方案

(1) 增加虚拟内存:cmd -> taskmgr 打开任务管理器,查看物理内存和虚拟内存,可观察matlab在运行过程中是否超过物理内存和虚拟内存。若超过,增加虚拟内存的方法是不可行的。物理内存不足的时候可以通过将电脑的虚拟内存设置得大一点,可一定程度上缓解内存不足的压力,但缓解是非常有限,核心还是增加物理内存。

查看虚拟内存方法:

(1a)右击“我的电脑”–属性–高级系统设置—-系统属性—–高级—-在性能框内点“设置”
(1b)性能选项对话框,点第二个标签“高级”
(1c)页面文件大小后面的数字就是虚拟内存。
(1d)若分页文件大小0,表示没有设置虚拟内存

增加虚拟内存方法
重复(1a)->(1d),
(1e)点击性能选项-高级-更改,取消选定的虚拟内存页面顶部的复选框,然后点击系统所在的驱动器,接着点击自定义大小,可在空白框中输入你索要设置的虚拟内存的大小即可。
这里写图片描述

(2)使用PACK:PACK可以将matlab中的变量导出到磁盘中,以增加可用内存。

如何使用PACK:
当内存被分为很多碎片以后,其实本身可能有很大的空间,只是没有作构的连续空间即大的Block而已。如果此时Out of Memory,此时使用pack命令可以很好的解决此问题。
help文件 用法:
pack
pack filename
pack(‘filename’)

pack可以为用户整理内存的机制在于,pack函数重新整理MATLAB工作空间中驻留的变量,将原来断断续续的内存整理的连续起来,这样原来断断续续的内存可能不足以存储大的矩阵,而整理之后,可以很显著的提高内存的使用效率,最后重新分配的空间将是连续的,避免掉原来断断续续的内存使用。整理步骤:
(1)将base空间以及全局变量保存到一个mat文件
(2)清空工作空间中的所有资源
(3)重新载入mat文件中保存的base空间变量和全局变量,然后删掉mat文件

备注: pack不能提高MATLAB所拥有的虚拟内存数量,如果想要增加这个数量,也就是使MATLAB单独变量的最大size或者同时存在的变量所占有的最大空间增大,需要提高系统的虚拟内存。

Change the current folder to one that is writable, run pack, and return to the previous folder.

cwd = pwd;
cd(tempdir);
pack
cd(cwd)
feature('memstats') % 查看matlab内存使用情况

(3) 打开计算机的3GB开关(64位的WIN7不用调)。

3GB切换(3GB switch):由于在windows上运行matlab时,如果内存的使用超过约1.7G左右就要出现这种错误,而无论你有多大的内存也没用。MATLAB现在支持3GB切换(3GB switch)启动选项(boot option),配置额外的1GB的可寻址内存到每个程序上。这增加了你可以储存到MATLAB workspace中资料的总量约到2.7 GB。这相当于33亿的精度值。此新增的内存区块和MATLAB使用剩下的(内存)并不是连续的,所以你不能建立一个数组来填满此空间。

具体做法:修改C:\ Boot.ini文件如下:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS = “Microsoft Windows XP Professional”
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS=”Microsoft Windows XP Professional” /3GB
注意后面的/3GB就是后加上的。重新启动系统再次运行matlab。
打开3GB的目的:32位系统(包括XP和32位的win7),默认情况下不允许某个程序调用超过2G的内存,一旦超过,就自动结束掉该程序。因此打开3GB,就是为了允许大型程序,比如3DMAX,调用最多3G的内存


matlab java.lang.OutOfMemoryError

Java虚拟机内存不够用了.可以增加最大内存设置.

  1. 查找matlab根路径.在matlab命令行中敲入:matlabroot
    显示根路径,如:D:\CMWang\MATLABR2014b

2.查看当前Java虚拟机最大堆内存, 敲入:

java.lang.Runtime.getRuntime.maxMemory

3.查看Java虚拟机版本.敲入:

version -java

4.在 $MATLAB\bin\$ARCH 路径下新建java.opts文件.

MATLAB,D:\CMWang\MATLABR2014bARCH是系统架构.例如win64,则在D:\CMWang\MATLABR2014b\bin\win64下新建java.opts文件.

5.用记事本打开java.opts文件,对于不同的版本的Java虚拟机,输入:

The following table shows the default settings MATLAB uses for versions of the JVM:

JVM Initial Heap Size Max Heap Size
1.6.0 -Xms64m -Xmx128m (32-bit)
-Xmx196m (64-bit)
1.5.0 -Xms64m -Xmx96m (32-bit)
-Xmx128m (64-bit)
1.4.2 -Xms16m -Xmx96m
1.3.1 -Xms16000000 -Xmx64000000
1.2.2 -Xms16000000 -Xmx64000000
1.1.8 -ms16000000 -mx64000000

例如我的Java是1.4.2,在java.opts文件写入-Xmx96m,保存就ok啦
如果输入错误就报错:warning : Failed to start to Java Virtual machine
6. 重启matlab,敲入

java.lang.Runtime.getRuntime.maxMemory

显示最大内存改变,设置成功.

备注: 可在matlab->file->preference->General->Java Heap Memory,可以设置Java Heap Memory大小,其最大可以设置的值是内存大小的1/4。如果想用的Java Heap Memory大于内存的1/4,无法利用Preference进行设置。

采用上述在Matlab安装目录下添加java.opts的方法,可以任意设置Java Heap Memory的大小,当设置的大小小于内存的1/4时,Preference中Java Heap Memory面板显示的是相应的值;当大于内存的1/4时,面板显示值是其最大值,但实际上使用的却是我们在java.opts中设置的大小。设置Java Heap Memory面板的主要目的是防止一些人任意改变,破坏操作系统.

主要参考:

http://cn.mathworks.com/matlabcentral/answers/92813-how-do-i-increase-the-heap-space-for-the-java-vm-in-matlab-6-0-r12-and-later-versions

http://cn.mathworks.com/matlabcentral/answers/99763-why-do-i-receive-a-java-exception-when-starting-matlab-6-5-r13-or-later

http://blog.sina.com.cn/s/blog_890c6aa30101b5fy.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246976.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c++MMMMM:oo

1.union,struct和class的区别 转载于:https://www.cnblogs.com/invisible2/p/11524465.html

matlab调用Java程序时出现 Java.lang.OutOfMemoryErrot: GC overhead limit exceeded

matlab调用Java程序时出现 java.lang.OutOfMemoryError: GC overhead limit exceeded JDK1.6.0_37和JDK_1.7.0_60版本,这2个版本中JVM默认启动的时候-XX:UseGCOverheadLimit,即启用了该特性。这其实是JVM的一种推断,如果垃圾回收耗费了98%的…

第94:受限玻尔兹曼机

转载于:https://www.cnblogs.com/invisible2/p/11565179.html

安装完Ubuntu桌面后要做的(待续)

1. 为了快速而顺畅的更新,打开终端并输入以下命令来让系统使用新软件库: $ sudo apt-get update 2. 更改系统外观和行为 如果你想要更改桌面背景或图标大小,依次打开System Settings –> Appearance –> Look,并对桌面进…

算法第二章上机实践报告

一、实践题目 改写二分搜索算法 二、问题描述 这道题目主要是考验同学们在熟练掌握二分搜索法的前提下,对二分搜索的结构和运用有一个更加深刻的掌握。首先是要了解二分搜索的结构,其次,要了解二分搜索中的分治方法每一个步骤的用意&#xff…

windows远程登录 ubuntu Linux 系统及互连共享桌面

预备工作 #开启防火墙端口 sudo ufw allow 3389#安装ssh sudo apt-get install openssh-server一、windows直连Ubuntu16.04共享桌面 1、打开终端,安装xrdp,vncserver sudo apt-get install xrdp vnc4server xbase-clients2、安装desktop sharing(Ubuntu…

RAID详解

一、raid什么意思? RAID是“Redundant Array of Independent Disk”的缩写,中文翻译过来通俗的讲就是磁盘阵列的意思,也就是说RAID就是把硬盘做成一个阵列,而阵列也就是把硬盘进行组合配置起来,做为一个整体进行管理&a…

装windows和Linux系统时找不到硬盘,pe安装系统没有出现磁盘,不能识别磁盘

装win7的时候,我们使用U盘装系统,找不到硬盘, 或者使用光盘装系统时 会出现 缺少所需的CD/DVD驱动器设备驱动程序 然后找遍整个硬盘/光盘也找不到合适的驱动,安装无法继续。 解决方法: ACHI模式下,PE里…

Linux 服务器上建立用户并分配权限

查看用户 whoami #要查看当前登录用户的用户名 who am i #表示打开当前伪终端的用户的用户名 who mom likes who 命令其它常用参数 参数 说明 -a 打印能打印的全部 -d 打印死掉的进程 -m 同am i,mom likes -q 打印当前登录用户数及用户名 -u 打印当前登录用户登录信…

LSTM

具体推导公式为: https://zybuluo.com/hanbingtao/note/581764 转载于:https://www.cnblogs.com/invisible2/p/11593270.html

查看windows显卡内存详细信息

方式一: 打开运行(WindowsR),输入DXDIAG,打开DirectX诊断工具 可以看到显卡是AMD Radeon HD 7000 series,但是没有具体显卡信息,这个型号是AMD在2013年主推的ATI的入门级独显系列,其…

从服务器上传和下载文件方法

1. ssh 安装SSH Secure Shell Client客户端 下载链接 http://download.csdn.net/detail/jiandanjinxin/9755684 使用方法参考主页 http://www.cnblogs.com/wxjnew/archive/2013/06/05/3118808.html http://www.cnblogs.com/pingzhanga/p/5126885.html 导致此问题的原因是…

Deep Learning运行所需的硬件配置(转)

A Full Hardware Guide to Deep Learning 2015-03-09 by Tim Dettmers 304 Comments 转自:http://timdettmers.com/2015/03/09/deep-learning-hardware-guide/ Deep Learning is very computationally intensive, so you will need a fast CPU with many cores, ri…

DBUtils

概述 DBUtils是Java编程中的数据库操作实用工具,小巧简单实用。 DBUtils封装了对JDBC的操作,简化了JDBC操作,可以少写代码。 DBUtils三个核心功能介绍 QueryRunner中提供对sql语句操作的APIResultSetHandler接口,用于定义select操…

windows7 下vmware workstation 12安装Ubuntu16.04虚拟机及安装和共享文件夹

关于安装虚拟机,具体细节可参考下文(已测试可执行) vmware workstation 12 安装 ubuntu kylin 16.04虚拟机 下面就给出在虚拟机Ubuntu16.04下安装VMware Tools,是为了实现目标主机和虚拟机之间的通讯。 1.打开虚拟机之后&#…

前端行性能优化

PS:结合了精英的思想和自己的一些小小的总结~ 影响用户访问的最大部分是前端的页面。网站的划分一般为二:前端和后台。我们可以理解成后台是用来实现网站的功能的,比如:实现用户注册,用户能够为文章发表评论等等。而前…

Python环境搭建及第三方库安装和卸载

因预处理医学图像数据需要用到以下的Python库 SimpleITK;Anaconda;PIL (Python Imaging Library),故重新安装Python和第三方库。 一、安装Python 去官网:https://www.python.org/downloads/ 下载相应版本。 双击下载的安装包&…

VueX的store的简单使用心结

vuex的特点: 多组件共享状态: 多个组件使用同一个数据 任何一个组件发生改变, 其他组件也要跟着发生相应的变化 安装vuex npm install vuex: 创建实例: import Vuex from vuex import Vue from vue Vue.use(Vuex)const state {name : 张…