2010-04-13 31 views
0

我們經常緩存圖片和數據以改善我們的iPhone應用程序的性能。但是,您使用什麼策略來管理緩存數據,如刪除或更新它?什麼時候應該刪除iPhone應用中的緩存數據?

我將圖像保存到TMP文件夾,但不知道什麼時候應該觸發「檢出日期緩存數據並刪除它」:當iPhone應用程序啓動,退出或空閒時間?

回答

1

感謝您的回覆。保存程序的狀態

在1分鐘內檢查空閒時間的想法相當好,但是我必須在應用程序時間內每隔15秒建立一次機制來檢查空閒狀態,我認爲這並不容易,很好爲表現。

最後,我決定在檢索新項目(數據+圖像)後執行「檢查並刪除緩存」。我將檢查不再需要顯示的項目(數據+圖像)並將其刪除。我認爲保存緩存的功能將會刪除緩存也是有意義的。 當然,我會在另一個線程中這樣做,以避免凍結界面。

這是好嗎?請給我你的意見。

2

您應該在iPhone調用「didReceiveMemoryWarning」函數時刪除緩存。

+0

+1你可能也想自己清理緩存,但是這樣做是爲了響應內存警告是至關重要的。 – 2010-04-13 03:09:11

+0

謝謝,但如何將數據存儲到磁盤?當我們檢查緩存數據以查找並刪除過期數據時? – KONG 2010-04-13 03:25:26

+0

@athanhcong,您可以使用NSTimer定期查找並刪除過期的緩存數據...您將不得不選擇一段時間,以獲得最佳性能......這將高度依賴於您的應用程序。我的建議是你分析它。 – 2010-04-13 05:41:23

2

當應用程序啓動或退出時,用戶通常期待響應。選擇最少量的實時數據,例如24小時,以及最少量的閒置時間,例如一分鐘。如果用戶閒置一分鐘並且距上次緩存清除超過24小時,請清理緩存。如果你正在跟蹤有多少數據被緩存,那麼你也可以考慮這一點。如果超過24小時和/或緩存中有超過一兆字節。

如果您確定應用程序正在正常退出,而不是退出來接聽電話或啓動其他應用程序,那麼這也可能是個好時機。

如果您的應用程序做了某些事情,無論如何用戶必須等待,但這不會受到清除緩存的影響,那也可能是一個好時機。例如,從服務器獲取一些數據。

0

我個人似乎不喜歡當我打開應用程序或閒置時間超過1分鐘後清除緩存。如果緩存的年齡大概是24小時,那麼清理這個想法是很好的。

我個人的建議是構建堆棧的緩存文件。然後檢查緩存文件創建/修改時間或上次緩存文件訪問。所以乾淨的背景(不要讓讓你的應用感覺慢,因爲你正在做這樣的任務,當開始或停止一個應用程序)可能在一個線程(是否支持iPhone SDK的?不知道:)),並檢查「緩存如果是,請重新緩存或刪除文件

相關問題