最近,我正在做一個專案,該專案將有數千個小檔案需要管理。整個系統將隨機讀取/寫入這些檔案。其中一部分是在需要時從網路下載的。由于性能和系統限制,我只能保留 10~20 個檔案描述符/句柄。所以我決定創建一個大的單個檔案作為我的“磁盤”。然后動態讀寫檔案進去。
這是我的設計:
- 用于元資訊序列化的檔案頭
- 保存每個小檔案偏移量的索引
- 一堆“預分配段”來保存檔案
- 支持多執行緒訪問
最后,它看起來像一個虛擬檔案系統。但我不確定在 Android 和 iOS 上同時讀/寫同一個檔案是否安全。而且我完全不知道如何管理我的“預分配段”的片段。
是否有任何我可以參考的最佳實踐或框架?我在正確的路上嗎?
uj5u.com熱心網友回復:
我不是 Android/Ios 專家,但我認為在您當前的情況下,問題將是在 io 操作上使用多個執行緒。我的建議是,如果你想繼續這個地方,那就是添加一個中間記憶體緩沖區,它可以處理更新/洗掉和異步寫入磁盤。另一個建議是嘗試使用已經為您完成所有繁重作業的 sqlite db(具有單個檔案的 db)。
uj5u.com熱心網友回復:
將所有檔案放在一個資料庫中。適用于 Android 的 Sqlite。然后它們在一個檔案中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/393805.html
