ImageloaderGlideFresco的性能及加载速度比较

Posted lianghe01

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ImageloaderGlideFresco的性能及加载速度比较相关的知识,希望对你有一定的参考价值。

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


三、代码地址:https://github.com/lianghe012/ImageLoaderLibrary.git


四、三个库的使用比较

前置条件

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、内存缓存策略增加未解码缓存,减少磁盘读写次数





































以上是关于ImageloaderGlideFresco的性能及加载速度比较的主要内容,如果未能解决你的问题,请参考以下文章

卓越性能和高性能区别

卓越性能和高性能区别

性能测试包括哪些方面

性能测试–性能监视器

系统性能监控

性能模式是啥意思