從磁盤讀取的操作系統不僅僅是程序實際請求的內容,因爲程序將來可能需要附近的信息。在我的應用程序中,當我從磁盤獲取項目時,我想顯示元素周圍的信息間隔。在我要求和展示的信息量和速度之間存在權衡。但是,由於操作系統已經讀取了比我要求的更多的內容,所以在內存中訪問這些字節是免費的。我可以使用哪些API來查找操作系統緩存中的內容?如何獲得預讀字節?
或者,我可以使用內存映射文件。在這種情況下,問題可以歸結爲找出頁面是否交換到磁盤。這可以在任何普通的操作系統中完成嗎?
編輯:相關論文http://www.azulsystems.com/events/mspc_2008/2008_MSPC.pdf
從磁盤中提取的項目有多大?獨立於預讀,文件系統將以塊大小(通常爲4KB)爲單位從磁盤讀取數據。因此,如果你的項目,比如100個字節,也許你可以簡化你的問題,以顯示項目在同一個塊---你可以計算,而不訴諸花哨的接口。 – 2010-05-02 20:54:51
我想知道操作系統讀取的靜態最小值,但不是它爲特定操作實際讀取的字節數。 – 2010-05-03 13:00:07