情况:估计你是否可以用Linux Matlab中的Ram和Swap计算大矩阵
我需要Mem
和Swap
之和,在{Heading total 下的free -m
对应的值
total used free shared buff/cache available
Mem: 7925 3114 3646 308 1164 4220
Swap: 28610 32 28578
Matlab中的免费Ram内存
% http://stackoverflow.com/a/12350678/54964
[r,w] = unix('free | grep Mem');
stats = str2double(regexp(w, '[0-9]*', 'match'));
memsize = stats(1)/1e6;
freeRamMem = (stats(3)+stats(end))/1e6;
Matlab中的免费交换记忆:...
内存需求与Matlab的Matrix大小之间的关系:...
Suever的命令为我提供了29.2 GB,与free
的输出相对应,所以正确
$ free
total used free shared buff/cache available
Mem: 8115460 4445520 1956672 350692 1713268 3024604
Swap: 29297656 33028 29264628
系统:Linux Ubuntu 16.04 64位
Linux内核:4.6
Linux内核选项:wl,zswap
Matlab:2016a
硬件:Macbook Air 2013-mid
拉姆:8 GB
交换:SSD上28 Gb(如线程How to Allocate More Space to Swap and Increase its Size Greater than Ram?中设置)
SSD:128 GB
答案 0 :(得分:3)
您可以稍微修改您发布的代码以获取掉期金额。
function freeMem = freeMemory(type)
[r, w] = unix(['free | grep ', type]);
stats = str2double(regexp(w, '[0-9]*', 'match'));
memsize = stats(1)/1e6;
if numel(stats) > 3
freeMem = (stats(3)+stats(end))/1e6;
else
freeMem = stats(3)/1e6;
end
end
totalFree = freeMemory('Mem') + freeMemory('Swap')
要计算矩阵占用多少内存,请使用数据类型的大小并乘以元素数作为第一近似值。