ディスクのパフォーマンスが興味深いアプリケーションを書いています。私は以前、古い機械式ディスクを使用し、このスレッドの手法を使用して、パフォーマンスを測定する前にキャッシュをクリアしました。
// Clear cache for benchmarking
sync();
std::ofstream ofs("/proc/sys/vm/drop_caches");
ofs << "3" << std::endl;
ofs.close();
それはうまく機能し、期待どおりの結果が得られました.キャッシュをクリアすると、測定されたディスクシーケンシャル読み取り速度は約100 MB /秒になり、キャッシュをそのままにしておくと何倍も速くなりました.
先日、/media/ の下にマウントされた SSD ディスクをインストールしました。コンピューターを新たに再起動した後、最初の数回の測定値は予想どおり (約 300 MB/秒) ですが、キャッシュが開始されると、明らかにはるかに高くなります。
私の問題は、アプリケーションを SSD に移動して以来、以前に使用したコード行が効果がないことです。そのキャッシュは別の方法で動作しますか? それをクリアするために何か違うことをする必要がありますか?現在機能する唯一のことは、コンピューターの再起動です。