2016-05-12 37 views
0

我正在研究分析大型原始數據文件(來自質譜儀但與我的問題無關)的工具。這些文件大約是4到8GB大的二進制文件。爲了訪問這些文件,我有兩個來自儀器供應商的API。速度測試問題(在Windows中的HDD緩存?)

我目前的任務是找出兩個API中哪一個更快。現在的問題是,每次我在我的工具中多次運行同一個原始文件時,即使關閉並重新啓動應用程序,第二次也會快得多(我們正在討論從10分鐘到2分鐘的變化)時間(沒有緩存發生在我身邊,據我所知也不是來自API) 這當然會使執行適當的性能基準非常困難。

在Windows(7到10)中是否存在一種可以執行相同大規模文件緩存的已知機制?硬盤驅動器有這麼大的緩存嗎?有什麼辦法可以禁用它,以便我可以在後續測試中運行相同的文件,以便它能像第一次一樣運行?

感謝您的幫助 奧利

+0

對於單次測試(評估API),您可以在運行任一測試之前直接重新啓動PC。這將確保在相同的初始條件下。其他想法是衡量*熱身*表現。如果文件訪問速度不變,那麼差異將顯示更好的API。 – Sinatr

回答

0

答案隱藏在背後的話

細節...訪問這些文件...

該緩存具有相應的影響性能完全取決於文件的訪問方式。你觀察到的第一次和第二次跑步之間的巨大差異,即10分鐘和2分鐘之間清楚地表明,訪問不是直截了當的。

嘗試按順序通過寫入或讀取4GB文件。你永遠不會碰到一個緩存,並且沒有任何緩存會幫助你。

我會建議什麼?從這裏開始:

File caching in Windows

Limit the file caching

但不懂得珍惜你的希望得逞的。文件訪問變得如此複雜和分層這些天,就像洋蔥......或食人魔。

我還有什麼建議?退出文件系統優化。住在那。使您的測試位於文件系統的「上方」,即比較「冷」緩存上的API並分別在「熱」緩存上進行比較。這似乎更接近現實世界。