我有一項服務負責收集不斷更新的網絡數據流。意圖是整個數據集必須隨時可用(只讀)。這意味着到達最早的最新數據消息應該可以被客戶端代碼訪問。內存映射文件對不斷變化的數據有害嗎?
當前的計劃是在Windows上使用內存映射文件。主要是因爲數據集非常龐大,跨越數十個GiB。無法知道需要哪部分數據,但在需要時,客戶可能需要隨意跳轉。
內存映射文件符合法案。不過,我已經看到它說(書面),他們是最好的數據集已被定義,而不是不斷變化。這是真的?我上面描述的場景能否與內存映射文件合作良好?
或者我最好保留所有數據的內存映射文件,最多數據量爲MB,因此內存映射文件保留了傳入數據歷史的近99%,但是我將最新的,比如100MB的獨立內存緩衝區。每當這個緩衝區變滿時,我將它移動到內存映射文件,然後清除它。
因此,這是投票將最近〜約MB分成輕量級的內存緩衝區,並且只在緩衝區接近容量時纔會週期性添加? – ApplePieIsGood 2009-04-28 04:17:10
沒有這是一個投票把整個東西放入內存映射文件,並讓操作系統緩存機制擔心它 – 2009-04-28 14:50:05