我制作了一个程序来读取和写入二维阵列到 NVME SSD(三星 970EVO plus)。
我设计了程序来读取 N*M 就像
#pragma omp parallel for
for(int i=0;i<N;i++)
fstream.read(...) // read M bytes
Run Code Online (Sandbox Code Playgroud)
但是,此代码显示的性能(KB/s)低于 SSD 规格(< GB/s)
我认为如果大小 M 大于块大小(可能是 4KB)并且是 2 的倍数,那么该代码将显示 GB/s 性能。
然而,事实并非如此。我想我错过了一些东西。
是否有一些 C++ 代码可以最大限度地提高 SSD 上的 I/O 性能?