更改虚拟内存后未解决 MATLAB 中的内存不足错误
OUT OF MEMORY error in MATLAB not resolved after changing the Virtual memory
如何处理 MATLAB 中的 OUT OF MEMORY 问题?我将驱动器 C(其中安装了 windows 8)和 E(其中安装了 MATLAB 2015a)中的虚拟内存更改为 20GB。我已经重新启动了计算机和 运行 代码,但我遇到了同样的问题。
明确一点,length(yourVector) = 30e6?对你来说,记忆可能太多了。使用 fopen/fread 分块加载文件可能会有所帮助。它是什么类型的文件?
dataType = 'float' ; % data type
chunkSize = 1e4 ; % load in chunks
fid = fopen(pathToYouFile); frewind(fid); % Read file from the start
fprintf('Loading . . . '); % start notice
while ~feof(fid)
theData = fread(fid,[1 chunkSize],dataType); % load chunk
% do yo thing
end
fprintf('Fini. '); % all done
fclose(fid);
更多 Java 堆内存是您所需要的,与可用的虚拟内存无关。
从您的评论来看,您的阵列似乎只有大约 664 MB 的可用内存。假设您的信号是一维的,那么这两个 30M 样本应该取:
30M * 2 * 8-Bytes = 480 MBytes
。
如果你有它的一些副本,那么你的记忆就会被填满。使用 whos
命令检查每个变量大小。完成后清除每个变量。即使您没有 运行 内存不足,清除这些变量以使 java 的内存管理更容易 -> 对您来说更快。
如何处理 MATLAB 中的 OUT OF MEMORY 问题?我将驱动器 C(其中安装了 windows 8)和 E(其中安装了 MATLAB 2015a)中的虚拟内存更改为 20GB。我已经重新启动了计算机和 运行 代码,但我遇到了同样的问题。
明确一点,length(yourVector) = 30e6?对你来说,记忆可能太多了。使用 fopen/fread 分块加载文件可能会有所帮助。它是什么类型的文件?
dataType = 'float' ; % data type
chunkSize = 1e4 ; % load in chunks
fid = fopen(pathToYouFile); frewind(fid); % Read file from the start
fprintf('Loading . . . '); % start notice
while ~feof(fid)
theData = fread(fid,[1 chunkSize],dataType); % load chunk
% do yo thing
end
fprintf('Fini. '); % all done
fclose(fid);
更多 Java 堆内存是您所需要的,与可用的虚拟内存无关。
从您的评论来看,您的阵列似乎只有大约 664 MB 的可用内存。假设您的信号是一维的,那么这两个 30M 样本应该取:
30M * 2 * 8-Bytes = 480 MBytes
。
如果你有它的一些副本,那么你的记忆就会被填满。使用 whos
命令检查每个变量大小。完成后清除每个变量。即使您没有 运行 内存不足,清除这些变量以使 java 的内存管理更容易 -> 对您来说更快。