Imageloader、Glide、Fresco的性能及加載速度比較


一、使用方式:
    // 下面兩個依賴包可選,根據需求二選一即可,
   compile 'com.ladingwu.library:fresco:0.0.9'
   compile 'com.ladingwu.library:glide:0.0.9'
   // 這個是必須的
compile "com.ladingwu.library:imageloader-framework:0.0.9"

二、初始化

// 初始化代碼需要在Application中完成
ImageLoaderConfig config = new ImageLoaderConfig
// .Builder(LoaderEnum.FRESCO, new FrescoImageLoader())
.Builder(LoaderEnum.GLIDE,new GlideImageLocader())
// .Builder(LoaderEnum.UIL,new UilImageLoader())
.maxMemory(5 * 1024 * 1024L) // 單位為Byte
.build();
ImageLoaderManager.getInstance().init(this, config);

三、三個庫的使用比較

前置條件

1、使用uisdk框架中 recycleview 加載
2、加載100個地址,地址指向的文件相同,圖片大小:101kb
3、限速60kb

Imageloader:
網絡下載且展示(16張圖片):12.5秒
本地加載且展示(16張圖片):0.8秒
幀率:54幀
快速滾動到底顯示當前屏:很慢

glide:
網絡下載且展示(16張圖片):12.5秒
本地加載且展示(16張圖片):0.7秒
幀率:52幀
快速滾動到底顯示當前屏:很慢

fresco:
網絡下載且展示(16張圖片):12秒
本地加載且展示(16張圖片):0.6秒
快速滾動幀率:56幀
快速滾動到底顯示當前屏:比Imageloader、glide快三倍

結論:加載速度、幀率和內存都是fresco更勝一籌,所以建議借鑒或者使用fresco。

fresco的優勢:
1、5.0以下圖片加載使用Android系統匿名共享內存(Anonymous Shared Memory),可以減少堆內存溢出問題和提高性能,提高性能的原因是Android系統匿名共享內存是手動申請手動釋放減少垃圾回收器的工作
2、圖片加載隊列管理的更加合理,不在當期屏的view則將對應的任務進行移除
3、根據不同系統版本使用不一樣的解碼器,提高圖片解碼效率
4、內存緩存策略增加未解碼緩存,減少磁盤讀寫次數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM