天天看點

ListView&RecycleView加載大量資料的時候如何提高效率

  • 由來

    示範的Demo中總是看到

這讓我深深焦慮記憶體使用的問題啊,于是上網好好看了些文章,給自己好好充了下電

List存儲資料的問題

java中list最多可以存儲多少條資料?40萬可以嗎?

https://www.zhihu.com/question/20171726

android如何在ArrayList中存儲大量資料并緩存 [問題點數:40分]

http://bbs.csdn.net/topics/390758969

Android 新浪微網誌 App 不斷“加載更多”,會不會導緻這個List集合的記憶體溢出?

https://www.zhihu.com/question/41155783

RecyclerView 加載資料的優化 ,主要包含以下幾個方面:

一. 加載資料布局的優化

● 舉例

1. 布局複用
   2. 圖檔優化
   3. 等等............
           

二.有新資料庫來的時候,重新整理的優化

RecyclerView 資料重新整理的幾種方式

http://www.cnblogs.com/baiqiantao/p/6956425.html

三.記憶體有限 ,如何存儲資料

  1. 提高記憶體上限 JVM虛拟機可用記憶體上限
  2. 記憶體不夠用外存

(設定一個标準,超過這個大小該回收,(資料持久化會持久化在磁盤裡面(形式:1.資料庫存儲

2.檔案存儲),以後有用到的情況再從磁盤裡面加載))

  1. 合理使用記憶體

    (1).合理使用對象記憶體

    ● 舉例

    強軟弱虛引用

    使用頻繁的占用記憶體大的對象–圖檔

    http://blog.csdn.net/panyongcsd/article/details/46605613

    Java:對象的強、軟、弱和虛引用

    http://zhangjunhd.blog.51cto.com/113473/53092/

    Java如何在記憶體有限的情況下實作一個超大數組?

    https://www.zhihu.com/question/30750488

    (2).記憶體中的資料存儲流向

    可以從磁盤查找到資料 存入記憶體資料庫 從記憶體資料庫中查找然後存入集合 set(集)、list(清單)和map(映射)

    關于記憶體資料庫:

    Android 記憶體資料庫

    http://blog.csdn.net/degwei/article/details/9672485
               

關于在使用記憶體中存儲資料過程中碰到過什麼問題?

推薦文章

java 大資料處理之記憶體溢出解決辦法(一)

   http://www.cnblogs.com/a757956132/p/4644910.html
           
  • 補充一點

    在考慮這個問題的時候,回想到我以前看小說時間過長的時候,看到一些對話框提示,“您是否看的太累了,需要休息一下”這個應用場景是否和加載資料結合在一起呢,快到臨界值的時候,适當給使用者一些提示?