Matlab加载功能性能

时间:2014-02-03 16:23:23

标签: matlab

我观察到load函数的性能非常低:

tic; v = load('file.txt', 'ascii'); toc
Elapsed time is 462.528007 seconds.

我反复得到~460秒的表现。 文件大小为5.9 GB,它是一个4列数据,如下所示:

00319929  00786575  00320101  00786305
00319929  00786575  00320107  00786305
00319929  00786575  00320113  00786306
00319929  00786575  00320120  00786306
and so on

同一文件的常规副本大约需要2秒钟:

>> time dd if=file.txt  of=/dev/null bs=1024k
5669+1 records in
5669+1 records out
5945005371 bytes (5.9 GB) copied, 1.28557 seconds, 4.6 GB/s

real    0m1.287s
user    0m0.001s
sys     0m1.286s

所以这不是文件系统问题。

load函数这么慢是否正常?

1 个答案:

答案 0 :(得分:0)

尝试textscan,这可能会更快,并且可以让您在阅读时转换数据,从而节省内存:

fid = fopen('file.txt');
v = textscan(fid,'%s%s%s%s'); % strings
%v = textscan(fid,'%d%d%d%d','CollectOutput',true); v = v{1}; % uint32
%v = textscan(fid,'%f%f%f%f','CollectOutput',true); v = v{1}; % double
fclose(fid);