C++ 提供 SSE 指令,以最快的速度读取文件
Fastest file reading in C++ with SSE instructions available
我必须以最快的方式从文件中读取8k x 8k矩阵。到目前为止,我正在使用 fstat 并将整个文件读入内存,然后对加载的数据进行操作。
这是最快的方法吗?我正在使用具有SSE指令的x86处理器。我可以利用他们的优势进行文件读取吗?
谢谢
SSE 指令不会加快读取文件的速度。这将受到磁盘访问的限制。
一旦文件在内存中,那么,如果编译器发出 SSE 指令,则对矩阵执行的操作将受益。
您还可以考虑使用内存映射文件并将一些缓冲责任转移到操作系统。
如果您需要在处理之前将所有数据都放在内存中,那么您已经这样做的方式看起来是最好的。
SSE 操作可能会帮助您处理数据,但它们不会帮助您更快地加载数据。无论如何,您可以尝试一下编译器中可用的最大优化(例如,在GCC中,您可以使用-O3,然后指定-msseX选项之一(。当然,这样做会降低二进制文件的可移植性。
相关文章:
- 为什么在读取文件大小时文件IO速度会发生变化
- 加快在C++中读取/处理日志文件的速度
- 如何提高文件的读取速度?
- QT 5.7 串口读取速度很慢
- 如何在 Ubuntu 上提高我的程序磁盘读取速度
- boost::unique_lock,多次读取会减慢写入速度
- C++-为什么标记化器从文件中读取行的速度如此之慢
- 对齐数据:速度取决于恒定数据读取的相对采样大小和采样频率
- C++ 提供 SSE 指令,以最快的速度读取文件
- C++ ifstream::由于memcpy,读取速度慢
- 为什么从内存映射文件中读取速度如此之快
- 可以提高iostream读取和压缩gzip文件的速度
- Windows XP在C++中启动时读取文本文件的速度较慢;预取
- FILE_FLAG_IO_BUFFERING会减慢同步读取操作的速度
- STL文件的哪种格式读取速度更快:ascii还是二进制
- C++逐行读取文本,需要节省速度/效率
- QTcpSocket每~0.5s才读取一次数据,即使是非常小的数据包,任何方法都可以加快速度
- 速度控制在100Hz至10KHz范围内读取小记录从文件上的窗口
- 如何加快从流到内存的读取速度
- 如何使用c++在Windows上提高读取数据的速度