2016-09-08 58 views
3

我想知道iOS中I/O操作的成本有多高。I/O操作性能

假設我有應用程序從urls下載圖像並將其存儲在設備內存中。

下載當然是異步的,但我想知道如何在設備內存中存儲數據以及如何從內存中接收數據。

有很多小圖像(縮略圖),但我也存儲大圖像(1-2 MB)。

我應該在後臺線程上異步執行寫入和讀取操作,否則,如果我在主線程上執行寫入和讀取操作,它不會對性能產生太大影響。

回答

2

由於您已經異步下載圖像,因此您也不難以異步存儲它們。我會說這是一個最佳實踐,因爲它與UI的東西無關,所以它不應該在主線程上。

看看這個doc from Apple。他們沒有具體說存儲文件應該在後臺線程上完成,但是他們承認,當你有很多文件時(當我們談論圖像時更是這樣),它可能是一個非常昂貴的操作。)

如果您的應用使用大量文件,其 文件相關代碼的性能非常重要。相對於其他類型的 操作,訪問磁盤上的文件是計算機可以執行的最慢操作之一。根據文件的大小和數量,它可以從幾毫秒到幾分鐘的時間從基於磁盤的硬盤讀取 文件。

他們也給你很多好的建議,以減少I/O操作 - 比如重用的NSURL對象 - 你可以在你的編碼很容易採納。