Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 使用“伪”访问内存位置;“文件句柄”;在MATLAB中_Performance_Matlab - Fatal编程技术网

Performance 使用“伪”访问内存位置;“文件句柄”;在MATLAB中

Performance 使用“伪”访问内存位置;“文件句柄”;在MATLAB中,performance,matlab,Performance,Matlab,通过避免将整个数据集加载到内存中来处理大型数据集有很多问题。我的问题正好相反:我编写的代码逐行读取文件,以避免内存溢出问题。然而,我刚刚获得了一个拥有数百GB内存的强大工作站的访问权限,解决了这个问题,使磁盘访问成为瓶颈 问题是,我的代码是使用fgetl之类的函数逐行访问数据文件的。对于我来说,是否有可能以某种方式将文件句柄f=fopen('datafile.txt')替换为与函数读取文件的方式完全相同的其他文件句柄,但不是从磁盘读取,而是返回存储在内存中的值 例如,我在想,有一个大的单元格数组

通过避免将整个数据集加载到内存中来处理大型数据集有很多问题。我的问题正好相反:我编写的代码逐行读取文件,以避免内存溢出问题。然而,我刚刚获得了一个拥有数百GB内存的强大工作站的访问权限,解决了这个问题,使磁盘访问成为瓶颈

问题是,我的代码是使用
fgetl
之类的函数逐行访问数据文件的。对于我来说,是否有可能以某种方式将文件句柄
f=fopen('datafile.txt')
替换为与函数读取文件的方式完全相同的其他文件句柄,但不是从磁盘读取,而是返回存储在内存中的值


例如,我在想,有一个大的单元格数组,其中文件内容按行分割,
fgetl
只返回下一个。如果我必须为此编写自己的包装,我该怎么做呢?

我想你可能会被卡住了。但是,下次当您想要使用内存映射文件时,请查看
memmapfile
,这是可能的,可以编写一个类。然后
f=fopen\u bufferedfile('datafile.txt')
将是构造函数,
fgetl(f)
将调用方法
fgetl
,该方法相当于
f.fgetl()
fopen
fgetl
fclose
都是您需要的吗?@Daniel Yep就是这样:我可以用我的新类重载
fgetl
fclose
并替换文件打开的行吗。布里尔@rlbond为指针欢呼,在我已经用低级函数编写了很多代码之后,我遇到了
memmapfile
。如果我错了,请纠正我的错误,但是如果我使用memmapfile路径,我会不会仍然处于现在的位置?或者matlab是否能将尽可能多的文件加载到内存中,使其能够轻松处理,从而能够随着资源的增加而很好地扩展?@CharlieB:我认为将这两种方法结合起来是一种可行的方法,一个与现有代码相匹配的类和一个快速实现的
memmapfile
。我想你可能会被卡住。但是,下次当您想要使用内存映射文件时,请查看
memmapfile
,这是可能的,可以编写一个类。然后
f=fopen\u bufferedfile('datafile.txt')
将是构造函数,
fgetl(f)
将调用方法
fgetl
,该方法相当于
f.fgetl()
fopen
fgetl
fclose
都是您需要的吗?@Daniel Yep就是这样:我可以用我的新类重载
fgetl
fclose
并替换文件打开的行吗。布里尔@rlbond为指针欢呼,在我已经用低级函数编写了很多代码之后,我遇到了
memmapfile
。如果我错了,请纠正我的错误,但是如果我使用memmapfile路径,我会不会仍然处于现在的位置?或者,matlab是否能将尽可能多的文件加载到内存中,以便于轻松处理,从而在增加资源的情况下可以很好地扩展?@CharlieB:我认为将这两种方法结合起来是一种可行的方法,一个与现有代码相匹配的类,一个快速实现的
memmapfile