關於dataWithContentsOfFile 讀取大檔案的記憶體問題
在《中國區GPS偏移糾正(適用於Google地圖)》一文中曾讀取一個78M的大資料檔案,一開始採用了NSData的dataWithContentsOfFile:方法。不少人反饋說如果直接使用,將會耗盡iOS的記憶體。
其實這個是可以改善的。
NSData還有一個API:
+ (id)dataWithContentsOfFile:(NSString *)path options:(NSDataReadingOptions)readOptionsMask error:(NSError **)errorPtr; 其中NSDataReadingOptions可以附加一個引數,NSDataReadingMappedIfSafe引數。使用這個引數後,iOS就不會把整個檔案全部讀取的記憶體了,而是將檔案對映到程式的地址空間中,這麼做並不會佔用實際記憶體,這樣就可以解決記憶體滿的問題。
相關文章
- Python讀取大檔案的"坑“與記憶體佔用檢測Python記憶體
- 關於PHP記憶體洩漏的問題PHP記憶體
- Java中讀取檔案6種記憶體安全方式Java記憶體
- PHP超低記憶體遍歷目錄檔案和讀取超大檔案PHP記憶體
- 如何在Java中讀取超過記憶體大小的檔案Java記憶體
- [20191220]關於共享記憶體段相關問題.txt記憶體
- [效能]【JVM】關於JVM記憶體的N個問題JVM記憶體
- [20191223]關於共享記憶體段相關問題3.txt記憶體
- [20190320]關於使用smem檢視記憶體使用的問題.txt記憶體
- 關於JVM 記憶體的 N 個高頻面試問題!JVM記憶體面試
- 解決SqlServer執行指令碼,檔案過大,記憶體溢位問題SQLServer指令碼記憶體溢位
- 【Django】檔案讀取時路徑問題Django
- python讀取大檔案Python
- OS實驗八:採用快取記憶體實現檔案讀寫快取記憶體
- project中的堆疊記憶體,記憶體地址引用,gc相關問題Project記憶體GC
- 關於java記憶體訪問重排序的思考Java記憶體排序
- 關於onethink 目錄,檔案讀寫檢測函式中的問題函式
- 工具類,關於手工讀取 properties檔案引數
- 面試題-python 如何讀取一個大於 10G 的txt檔案?面試題Python
- 關於Android檔案數過大,分包問題的解決辦法Android
- 一種基於記憶體的檔案系統tmpfs記憶體
- python如何讀取大檔案Python
- 關於redis記憶體分析,記憶體優化Redis記憶體優化
- 如何使用Python讀取文字檔案並回答問題?Python
- go學習之檔案讀取問題(需更新)Go
- 線上問題排查例項分析|關於Redis記憶體洩漏Redis記憶體
- 線上問題排查例項分析|關於 Redis 記憶體洩漏Redis記憶體
- 關於記一次 Go 服務記憶體洩漏問題調查Go記憶體
- os.Open 讀取檔案和 vim 編輯的問題
- 關於FileDownloader檔案長度校驗的問題
- 排查Java的記憶體問題Java記憶體
- 關於QT的標頭檔案相互包含的問題QT
- 關於autoreleasepool記憶體管理記憶體
- 關於JavaScript的記憶體機制JavaScript記憶體
- php讀取大檔案詳解PHP
- Java 專案讀取 resource 資原始檔路徑問題Java
- python讀取大檔案的幾種方法Python
- JavaScript變數,資料和記憶體的相關問題JavaScript變數記憶體