2011-12-27 50 views
0

我目前正在開發一個應用程序,它從互聯網上加載大量圖像並將其保存在本地(我正在使用SDURLCache)。但是,舊圖像已從磁盤中刪除,因此我想知道最佳緩存大小是多少。
大緩存的優勢顯然是可以保存更多的圖像,從而帶來更好的用戶體驗。 缺點是圖像需要大量的空間,用戶將更快地用完磁盤空間。我想的尺寸是20MB。這似乎對我來說很大,但我問你你的意見是什麼。iOS應用程序的最佳緩存大小

回答

0

考慮到最小的iDevices有8GB的存儲空間,我不認爲20MB緩存太大,特別是如果它顯着提高了應用程序的性能。另外,請記住網絡緩存對電池壽命的巨大優勢,因爲網絡使用在電池使用時間非常昂貴。

但是,如果沒有更多的信息,確定理想的尺寸是很困難的。多久訪問一次圖片?每張圖片有多大(即20MB可容納多少張圖片)。多久需要從緩存中刪除圖像以添加新圖像?

如果您不斷更改緩存中的圖像,由於磁盤使用量增加,實際上可能會對電池壽命產生不利影響。

+0

嗯,它並沒有真正提高性能。它相當提高了內存使用量,因此如果加載了很多圖片,應用程序不會崩潰。一張圖片被訪問了大約2次。而在10 MB可能適合像15或20張照片。 – lbrndnr 2011-12-27 03:52:47

+0

Ahh我看到了,如果純粹是爲了保存圖像內存不足,那麼您只需確定可以安全地將多少圖像保存在內存中,而不會在較舊的設備(X)上出現內存不足錯誤,然後找出一次加載的圖片最大數量(Y)以及每張圖片的平均大小(Z)。那麼你恰當的緩存大小就是(Y - X)* Z,給出或者佔用幾MB。如果這太大,那麼您可能需要重新考慮應用程序的工作方式。 – 2011-12-27 05:01:01

+0

另外我對SDURLCache並不熟悉,所以如果它是一個全部或全部的東西(即所有的內存或全部緩存的圖片),那麼方程就是Y * Z.儘管你總是可以寫一個定製的解決方案來適應你的完全需要。 – 2011-12-27 05:02:38

2

決定合適的緩存大小的最佳方法是測試。在儀器下運行應用程序以測量性能和電池使用情況。繼續增加緩存大小,直到無法辨別性能差異。至少在測試條件下,這是您需要的最大尺寸。一旦你確定了尺寸,縮小尺寸,直到性能幾乎不可接受,以確定最小的可接受尺寸。

right大小介於這兩種大小之間,取決於您認爲重要的大小。如果您無法確定尺寸的,請選擇尺寸或將滑塊添加到應用的設置以讓用戶決定。 (如果可以的話,我會避免讓用戶可以調整 - 用戶不應該考慮這種事情。)