Imageloader、Glide、Fresco的性能及加载速度比较

1、使用方式:
    // 下面两个依赖包可选,根据需求二选一便可,
   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"

2、初始化缓存

// 初始化代码须要在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);网络

3、三个库的使用比较框架

前置条件ide

一、使用uisdk框架中 recycleview 加载
二、加载100个地址,地址指向的文件相同,图片大小:101kb
三、限速60kb

Imageloader:
网络下载且展现(16张图片):12.5秒
本地加载且展现(16张图片):0.8秒
帧率:54帧
快速滚动到底显示当前屏:很慢
性能

glide:
网络下载且展现(16张图片):12.5秒
本地加载且展现(16张图片):0.7秒
帧率:52帧
快速滚动到底显示当前屏:很慢ui

fresco:
网络下载且展现(16张图片):12秒
本地加载且展现(16张图片):0.6秒
快速滚动帧率:56帧
快速滚动到底显示当前屏:比Imageloader、glide快三倍this

结论:加载速度、帧率和内存都是fresco更胜一筹,因此建议借鉴或者使用fresco。队列

fresco的优点:
一、5.0如下图片加载使用Android系统匿名共享内存(Anonymous Shared Memory),能够减小堆内存溢出问题和提升性能,提升性能的缘由是Android系统匿名共享内存是手动申请手动释放减小垃圾回收器的工做
二、图片加载队列管理的更加合理,不在当期屏的view则将对应的任务进行移除
三、根据不一样系统版本使用不同的解码器,提升图片解码效率
四、内存缓存策略增长未解码缓存,减小磁盘读写次数图片

相关文章
相关标签/搜索