我在寫一個應用程序,其中磁盤性能很有趣。我以前使用的舊的,機械硬盤和使用的技術,this thread明確衡量業績前緩存:以編程方式清除Linux中安裝的(SSD)磁盤上的緩存
// Clear cache for benchmarking
sync();
std::ofstream ofs("/proc/sys/vm/drop_caches");
ofs << "3" << std::endl;
ofs.close();
運作良好,並給了我預期的結果 - 的〜100 MB/s的測量盤連續讀取速度清理緩存時,緩存獨立時會高出許多倍。
有一天,我安裝了一個SSD盤,安裝在/ media /下。在新的計算機重新啓動後,第一對測量結果與預期的一樣(約300 MB/s),但當緩存開始時,它們顯然要高得多。
我現在的問題是,自從將應用程序移動到SSD之後,以前使用的代碼行無效。那個緩存的行爲方式可能不同嗎?任何我需要做的不同來清除它?現在唯一可行的就是重啓電腦。
給那個downvoted這個的人:請留下評論,並指出爲什麼我可以修復它。 –
奇怪的是,這些磁盤應該具有相同的行爲,因爲緩存位於操作系統的更高層......可能是其他內容,比如讀取SSD上的緩存(注意:我甚至不確定它們是否有一個.. 。)? –
@ KarolyHorvath:你能詳細說明一下讀取緩存的想法嗎?我對這些事情大部分都是新手。 –