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%的…

[FY20 创新人才班 ASE] 第 1 次作业成绩

作业概况 条目备注作业链接【ASE高级软件工程】热身作业!提交人数19未完成人数2满分10分作业情况总结 本次作业作为大家软工课程的第一次作业,完成度相当不错(尤其是在国外暑研/赶论文的同学也在尽力完成作业,很感动)。…

JVM 参数设置

1、集成开发环境下启动并使用JVM,如eclipse需要修改根目录文件eclipse.ini; 2、Windows服务器下安装版Tomcat,可使用Tomcat8w.exe工具(tomcat目录下)和直接修改注册表两种方式修改Jvm参数; 3、Windows服务…

从筛选简历和面试流程讲起,再给培训班出身的程序员一些建议

本人最近几年一直在外企和互联网公司承担Java技术面试官的职责,大多面试的是Java初级和高级开发,其中有不少是培训班出身的候选人。 在我之前的博文里,从面试官的角度聊聊培训班对程序员的帮助,同时给培训班出身的程序员一些建议&…

马普所机器学习课程 CMU701

马普所机器学习课程 Max-Planck-Institut fr Informatik: Machine Learning https://www.mpi-inf.mpg.de/departments/computer-vision-and-multimodal-computing/teaching/courses/ 马普所 GVV project http://gvv.mpi-inf.mpg.de/GVV_Projects.html CMU701 Tom Mitchel…

Random Forest 实用经验(转)

总结两条关于random forest的实用经验。给定数据和问题,对于算法选择有参考价值。 小样本劣势,大样本优势 小样本情况下(1k~100k): RF相对与经典算法(SVM or Boosting)没优势,一般…

pytorch 查看中间变量的梯度

pytorch 为了节省显存,在反向传播的过程中只针对计算图中的叶子结点(leaf variable)保留了梯度值(gradient)。但对于开发者来说,有时我们希望探测某些中间变量(intermediate variable) 的梯度来验证我们的实现是否有误,这个过程就需要用到 te…

hbase数据迁移到hive中

描述: 原先数据是存储在hbase中的,但是直接查询hbase速度慢(hbase是宽表结构),所以想把数据迁移到hive中; 1.先hbase 和 hive创建 外部表链接, 可以在hive直接查询; 2.利用创建的外部…

weka 学习总结(持续)

机器学习之 Weka学习(一)weka介绍,安装和配置环境变量 机器学习之 Weka学习(二)算法说明 Weka数据挖掘处理流程介绍 机器学习之 weka学习(五)示例用法 Weka数据处理结果分析 http://blog.c…

作为IT面试官,我如何考核计算机专业毕业生?作为培训班老师,我又如何提升他们?...

我最近几年一直在做技术面试官,除了面试有一定工作经验的社会人员外,有时还会面试在校实习生和刚毕业的大学生。同时,我也在学校里做过兼职讲师,上些政府补贴课程(这些课程有补贴,学生不用出钱)…

memcpy函数的实现

1.按1个字节拷贝 (1)不要直接使用形参,要转换成char* (2)目标地址要实现保存 (3)要考虑源和目标内存重叠的情况 void * mymemcpy(void *dest, const void *src, size_t count) {if (dest NULL …

MATLAB中调用Weka设置方法(转)及示例

本文转自: http://blog.sina.com.cn/s/blog_890c6aa30101av9x.html MATLAB命令行下验证Java版本命令 version -java 配置MATLAB调用Java库 Finish Java codes.Create Java library file, i.e., .jar file.Put created .jar file to one of directories Matlab …

webpack4配置基础

前言 为什么要使用构建工具? 1.转换ES6语法(很多老版本的浏览器不支持新语法) 2.转换JSX 3.CSS前缀补全/预处理器 4.压缩混淆(将代码逻辑尽可能地隐藏起来) 5.图片压缩 6. .... 为什么选择webpack? 社区…

RESTful API概述

什么是REST REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移”。这里说的表征性,就是指资源,通常我们称为资源状态转移。 什么是资源? 网…

AI 《A PROPOSAL FOR THE DARTMOUTH SUMMER RESEARCH PROJECT ON ARTIFICIAL INTELLIGENCE》读后总结

本文转载: http://www.cnblogs.com/SnakeHunt2012/archive/2013/02/18/2916242.html 《A Proposal for the Dartmouth Summer Research Project on Artificial Intelligence》,这是AI领域的开山之作,是当年达特茅斯会议上各路大牛们为期两个月…

第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…