2012-11-08 45 views
0

我建立的Android設備和SD卡之間的標杆項目跟蹤不同類型的SD卡之間的性能變化。如何在I/O操作後刪除系統內部緩衝區的緩存?

在我的基準我使用許多IO方法,以及SD卡的邏輯和物理訪問。 有時我控制內部緩衝區的大小(與setnvbuf()

每個文件之間讀/寫我想清除系統的緩存或內部緩衝區。 管理這個最好的方法是什麼?

我的項目是部分本地,使用NDK,所以如果需要,我可以使用C/CPP的方法。

謝謝。

回答

0

臺標文件系統是很難的。有各種級別的緩存。當你進行I/O操作時,Linux(內核)會緩存你的數據,而且很難管理那個緩存,例如見cyanogenmod wiki page。事實上,你不應該依賴這樣的機制,而應該使用更長時間的運行測試來觀察sdcards的性能 - 一般來說它們是磚塊(我是認真的)。

做文件系統基準測試檢查長期居住項目也是一個非常不錯的主意,比如iozone。這些鏈接的

+0

不幫我緩存..你有一定的參考緩存級別,以及如何控制它們? – Bush

+1

不,點是您的基準應用程序/算法需要在沒有控制緩存的情況下運行。 – auselen

+0

如果對於每次閱讀,我都會創建新文件。它是否繞過緩存難度? – Bush