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、内存缓存策略增加未解码缓存,减少磁盘读写次数
最新文章
- 第三天--html区块
- 封装JavaScript的AJAX
- Android——GridLayout
- iOS企业应用Profile制作流程
- ORA-01033 ORA-01109 ORA-01034 ORA-12514 ORA-24324 ORA-01041 ORA-01157 ORA-01110
- mybatis逆向工程使用步骤详解
- 使用PHPword中文乱码并且下载的方法
- 内核模块加载错误 “Invalid module format” 解决办法
- UOJ#335. 【清华集训2017】生成树计数 多项式,FFT,下降幂,分治
- java保留小数后两位的四种写法
- bzoj1831 逆序对 (dp+树状数组)
- Mad Libs游戏1
- Spark学习之路 (二十三)SparkStreaming的官方文档
- SimpleDateFormat-时间格式化中的大小写字符
- c++静态全局,局部变量---18
- 解决ASP.NET MVC(post数据)Json请求太大,无法反序列化(The JSON request was too large to be deserialized)
- ubuntu15.04中安装mysql和mysql-workbench
- 修改微软RDP远程桌面端口
- 数据库选型之MySQL(固态硬盘)
- url拼接
热门文章
- 10055 - Hashmat the Brave Warrior &; 各数据类型所占字节数 (C语言)
- 【转】linux中inittab文件详解
- zipkin对于dubbo的支持
- linux中内核延时函数 (转)
- wiremock 模拟服务接口提供前端使用
- 黄聪:360浏览器、chrome开发扩展插件教程(2)为html添加行为
- ROS注册级别LEVEL0-6,原来使用GRE通道是不要钱滴
- 简单对象访问协议(Simple Object Access Protocol),PHP调用SOAP过程中的种种问题;php的soap无故出错的真凶:wsdl缓存
- 将各种格式的数据转换成XML
- secureCRT下linux rz命令上传文件失败或变小(破损)的问题解决方法