我目前正在開發一個應用程序,它從互聯網上加載大量圖像並將其保存在本地(我正在使用SDURLCache)。但是,舊圖像已從磁盤中刪除,因此我想知道最佳緩存大小是多少。
大緩存的優勢顯然是可以保存更多的圖像,從而帶來更好的用戶體驗。 缺點是圖像需要大量的空間,用戶將更快地用完磁盤空間。我想的尺寸是20MB。這似乎對我來說很大,但我問你你的意見是什麼。iOS應用程序的最佳緩存大小
0
A
回答
0
考慮到最小的iDevices有8GB的存儲空間,我不認爲20MB緩存太大,特別是如果它顯着提高了應用程序的性能。另外,請記住網絡緩存對電池壽命的巨大優勢,因爲網絡使用在電池使用時間非常昂貴。
但是,如果沒有更多的信息,確定理想的尺寸是很困難的。多久訪問一次圖片?每張圖片有多大(即20MB可容納多少張圖片)。多久需要從緩存中刪除圖像以添加新圖像?
如果您不斷更改緩存中的圖像,由於磁盤使用量增加,實際上可能會對電池壽命產生不利影響。
2
決定合適的緩存大小的最佳方法是測試。在儀器下運行應用程序以測量性能和電池使用情況。繼續增加緩存大小,直到無法辨別性能差異。至少在測試條件下,這是您需要的最大尺寸。一旦你確定了尺寸,縮小尺寸,直到性能幾乎不可接受,以確定最小的可接受尺寸。
right大小介於這兩種大小之間,取決於您認爲重要的大小。如果您無法確定尺寸的,請選擇尺寸或將滑塊添加到應用的設置以讓用戶決定。 (如果可以的話,我會避免讓用戶可以調整 - 用戶不應該考慮這種事情。)
相關問題
- 1. 最小化iOS應用程序大小
- 2. 在iOS應用程序中的應用程序存儲大小
- 3. ASP.NET緩存最大大小
- 4. 最大緩存大小
- 5. 我的iPhone應用程序的最小應用程序大小?
- 6. 有關ASP.NET應用程序緩存的最佳做法
- 7. asp.net應用程序的最佳緩存框架
- 8. iOS應用程序更新大小比應用程序大小大很多
- 9. 用最大大小的緩存文件夾實現PHP緩存
- 10. 正常的iOS應用程序大小?
- 11. 在iOS應用程序中存儲大量靜態信息的最佳方式?
- 12. 在iOS中存儲數據的最佳選擇應用程序
- 13. 在iOS應用程序中存儲數據的最佳實踐?
- 14. iOS中緩存的NSURLRequest內存大小
- 15. ASP.net應用程序會話緩存最佳實踐和模式
- 16. Mapbox緩存在iOS應用程序
- 17. 在ios應用上緩存圖像的最佳方式?
- 18. 用於讀取進程寫入的最佳緩衝區大小
- 19. 使用send()時是否存在「最佳」緩衝區大小?
- 20. 小應用程序圖像緩存
- 21. Java緩存小應用程序?
- 22. iOS應用程序大小 - 如何在
- 23. IOS應用程序大小100MB警告
- 24. IOS應用程序窗口大小
- 25. 最佳緩衝區大小 - TCP
- 26. Android最佳緩衝區大小
- 27. 我們的Android應用程序大小超過最大大小?
- 28. 最佳存儲和組織方式IOS應用程序
- 29. Android應用程序有大緩存?
- 30. iOS應用程序最大化消失
嗯,它並沒有真正提高性能。它相當提高了內存使用量,因此如果加載了很多圖片,應用程序不會崩潰。一張圖片被訪問了大約2次。而在10 MB可能適合像15或20張照片。 – lbrndnr 2011-12-27 03:52:47
Ahh我看到了,如果純粹是爲了保存圖像內存不足,那麼您只需確定可以安全地將多少圖像保存在內存中,而不會在較舊的設備(X)上出現內存不足錯誤,然後找出一次加載的圖片最大數量(Y)以及每張圖片的平均大小(Z)。那麼你恰當的緩存大小就是(Y - X)* Z,給出或者佔用幾MB。如果這太大,那麼您可能需要重新考慮應用程序的工作方式。 – 2011-12-27 05:01:01
另外我對SDURLCache並不熟悉,所以如果它是一個全部或全部的東西(即所有的內存或全部緩存的圖片),那麼方程就是Y * Z.儘管你總是可以寫一個定製的解決方案來適應你的完全需要。 – 2011-12-27 05:02:38