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、内存缓存策略增加未解码缓存,减少磁盘读写次数
Imageloader、Glide、Fresco的性能及加载速度比较的更多相关文章
- Web前端性能优化——如何有效提升静态文件的加载速度
WeTest 导读 此文总结了笔者在Web静态资源方面的一些优化经验. 一.如何优化 用户在访问网页时, 最直观的感受就是页面内容出来的速度,我们要做的优化工作, 也主要是为了这个目标.那么为了提高页 ...
- Web前端性能优化——如何提高页面加载速度
前言: 在同样的网络环境下,两个同样能满足你的需求的网站,一个"Duang"的一下就加载出来了,一个纠结了半天才出来,你会选择哪个?研究表明:用户最满意的打开网页时间是2-5秒, ...
- 【转】Web前端性能优化——如何提高页面加载速度
前言: 在同样的网络环境下,两个同样能满足你的需求的网站,一个“Duang”的一下就加载出来了,一个纠结了半天才出来,你会选择哪个?研究表明:用户最满意的打开网页时间是2-5秒,如果等待超过10秒, ...
- web前端性能优化,提升静态文件的加载速度
原文地址:传送门 WeTest 导读 此文总结了笔者在Web静态资源方面的一些优化经验. 如何优化 用户在访问网页时, 最直观的感受就是页面内容出来的速度,我们要做的优化工作, 也主要是为了这个目标. ...
- Web前端性能优化——提高页面加载速度
前言: 在同样的网络环境下,两个同样能满足你的需求的网站,一个“Duang”的一下就加载出来了,一个纠结了半天才出来,你会选择哪个?研究表明:用户最满意的打开网页时间是2-5秒,如果等待超过10秒, ...
- Web前端性能优化总结——如何提高网页加载速度
一.提高网页加载速度的必要性 国际知名的一组来自Jupiter Research的数据显示:购物者在访问网站过程中的不满会导致销售损失和品牌受损,其中 77%的人将不再访问网站 ,62%的人不再从该网 ...
- Selenium简单测试页面加载速度的性能(Page loading performance)
利用selenium的可以执行javascript脚本的特性,我写了一个java版本的获得页面加载速度的代码,这样你就可以在进行功能测试的同时进行一个简单的测试页面的加载速度的性能测试. 我现在的项目 ...
- Web前段优化,提高加载速度 css
前言: 在同样的网络环境下,两个同样能满足你的需求的网站,一个"Duang"的一下就加载出来了,一个纠结了半天才出来,你会选择哪个?研究表明:用户最满意的打开网页时间是2-5秒, ...
- jQuery实现图片预加载提高页面加载速度和用户体验
我们在做网站的时候经常会遇到这样的问题:一个页面有大量的图片导致页面加载速度缓慢,经常会出现一个白页用户体验很不好.那么如何解决这个问题呢?首先我们会想到的是提高服务器性能,使用静态缓存等手段来加快图 ...
随机推荐
- CollabNet Subversion Edge 安装笔记(1):基本安装设定篇
转载于:http://blog.miniasp.com/post/2011/12/30/CollabNet-Subversion-Edge-Installation-Notes-Part-1-Basi ...
- Window 查看端口进程使用
1. 查看所有端口占用 netstat -ano 2. 查看指定端口占用 netstat -ano | findstar "8080" 其中11152 对应为进程号 3. 查看进程 ...
- ruby的代码风格
http://stylesror.github.io/ 大部分同意,有小部分,不敢苟同.
- 黄聪:VS2010编辑C#未启动,打开设计视图时报"未将对象引用设置到对象的实例"
通常情况下,若是你将用户控件写好了放入窗体中,若是有不合理的代码,则会弹出错误提示框,不让你放.若是你之前只是随便加了一个用户控件,并且没有什么问题,但后来你又把控件改坏掉了,那么你打开就会报错(在窗 ...
- ffmpeg+nginx+video实现rtsp流转hls流,通过H5查看监控视频
一.FFmpeg下载:http://ffmpeg.zeranoe.com/builds/ 下载并解压FFmpeg文件夹,配置环境变量:在“Path”变量原有变量值内容上加上d:\ffmpeg\bin, ...
- centos7 安装 elasticsearch
安装java环境 这里使用yum方式安装,前提是必须有网络 yum install java-1.8.0-openjdk 安装完成,查看java版本 [root@localhost ~]# java ...
- linux下,一个运行中的程序,究竟占用了多少内存
linux下,一个运行中的程序,究竟占用了多少内存 1. 在linux下,查看一个运行中的程序, 占用了多少内存, 一般的命令有 (1). ps aux: 其中 VSZ(或VSS)列 表示,程序占用 ...
- 《Linux内核精髓:精通Linux内核必会的75个绝技》一HACK #2 如何编译Linux内核
HACK #2 如何编译Linux内核 本节介绍编译Linux内核的方法.当发现bug而修改源代码或者添加新功能时,就需要对内核进行重新编译,生成二进制映像文件.另外,如果想要使用发布版内核中无效的功 ...
- Python开发一个WEB聊天室
项目实战:开发一个WEB聊天室 功能需求: 用户可以与好友一对一聊天 可以搜索.添加某人为好友 用户可以搜索和添加群 每个群有管理员可以审批用户的加群请求,群管理员可以用多个,群管理员可以删除.添加. ...
- Python/Java读取TXT文件
JAVA: public static void readTextFile(String filePath) { try { String encoding = "GBK"; Fi ...