2GB的mat文件里面是一个大型矩阵?如何获取PCI设备的内存映射基地址对应的线性地址
时间:2018-02-09 20:05:01
浏览:次
点击:次
作者:
来源:
立即下载
不考虑其他因素,单就如何提高大文件的内存加载速度,希望大家给点意见。
压缩磁盘文件。用cpu时间换io时间
mmap和CreateFileMapping只是建立磁盘到内存的映射,映射了不代表已经载入内存,文件内容载入内存不代表在内存里建立了数据结构。除非内存结构直接存入磁盘,否则这类方法对载入速度没有任何帮助
压缩可以减少io时间,换SSD也能减少io时间。解析算法如果可以改成并行的,也可以提升速度。但瓶颈最终还是磁盘io
感觉已经不是软件问题了,应该换高速SSD。现在MATLAB载入的速度是①⓪⓪MB/s,基本上到机械硬盘的最好水平了。在载入时你可以观察①下CPU是否已使用了(①/逻辑核心数)*①⓪⓪%。如果已经到了,应该说基本没有提升的空间了。你换用C++写也不能超越存储设备的物理极限。
PVOID MmMapIoSpace
(
PHYSICAL_ADDRESS PhysicalAddress, //需要映射的物理地址
ULONG NumberOfBytes, //映射的地址长度
BOOLEAN CacheEnable //是否使用cache(驱动中要使用uncached)
);
平均评分
0人
- 5星
- 4星
- 3星
- 2星
- 1星
- 暂无评论信息