zoukankan      html  css  js  c++  java
  • 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、内存缓存策略增加未解码缓存,减少磁盘读写次数

  • 相关阅读:
    bootstrap之Click大事
    BZOJ 2878([Noi2012]-失落的游乐园树DP+出站年轮加+后市展望DP+vector的erase)
    cocos2d 消除类游戏简单的算法 (一)
    【BZOJ3627】【JLOI2014】路径规划 分层图
    Windows台cocos2d-x 3.2下载一个新的项目,创造的过程
    无插件,直接加参数,chrome它可以模拟手机浏览器
    unix您不能使用crontab设置运营计划
    LeetCode36:Valid Sudoku
    HDInsight HBase概观
    最受欢迎telnet
  • 原文地址:https://www.cnblogs.com/lianghe01/p/10413882.html
Copyright © 2011-2022 走看看