Fresco调研与性能测试

转载 2015年11月19日 14:53:43

最近调研了一番Fresco这个图片组件,分析了其优势,缺点,并实际运行分析了其性能。

Fresco 是一个强大的图片加载组件。

Fresco 中设计有一个叫做 image pipeline 的模块。它负责从网络,从本地文件系统,本地资源加载图片。为了最大限度节省空间和CPU时间,它含有3级缓存设计(2级内存,1级文件)。

Fresco 中设计有一个叫做 Drawees 模块,方便地显示loading图,当图片不再显示在屏幕上时,及时地释放内存和空间占用。

Fresco 支持 Android2.3(API level 9) 及其以上系统。
中文链接
GitHub地址

Fresco相比其他图片库如Picasso,UIL,Glide相比,所具有的最重要的几个独有特性:

  • 在Android 5.0以下系统,图片不存储在Java heap,而是存储在ashmemheap,中间的字节buffer同样位于native heap。使应用有更多内存空间,降低OOM风险,减少GC次数。
  • 渐进式的JPEG呈现。
  • 图片可以在任意点进行裁剪,而不是中心,即自定义居中焦点。
  • JPEG可以在native进行resize,避免了在缩小图片时的OOM风险。
  • 支持Gif和WebP。

在Fresco的GitHub中,有一个Demo工程。该Demo集成了多种图片加载框架,用于直观地与Fresco的图片加载性能进行比较。
使用Android Studio可以编译Fresco源码,运行Demo。我编译时参考的博文:Android Studio导入Fresco
使用Eclipse就不能编译源码了,不过可以下载Library工程,直接引用Lib来使用Fresco。

Demo提供了多种图片库来加载图片,这里我们采用Picasso来与Fresco进行比较。
上下滑动列表,观察应用的Java Heap和Native Heap的大小

Picasso

Picasso

Fresco

Fresco

可以看到,使用Picasso的,其Java heap高达38M。而Fresco则将其控制在了10M以内。极大的减小了OOM的风险。
不过Native Heap占用很吓人,80MB。

那么使用ADB去查看一下内存:

Picasso时的内存

Picasso时的内存

Fresco时的内存
Fresco时的内存

可以看到Fresco的Native Heap大小的确是70M,不过只占用了15M左右。而Fresco的Dalvik Heap占用为不到9M,是Picasso的四分之一还少,总共内存占用只有24M,是Picasso的一半左右。

综上:Fresco是个很牛逼的库。

不过由于Fresco将图片放置到一块特殊的Native内存,这块内存的管理是由Fresco进行的,所以Fresco的体积比较庞大,会为应用增加1.5M的体积,这算是Fresco的一个缺点。

性能测试需求调研报告

  • 2015年05月11日 10:21
  • 150KB
  • 下载

跨平台 PhoneGap 框架的调研 和 性能测试

PhoneGap是一个标准的开源框架,基于HTML,CSS和JavaScript的,创建跨平台移动应用的快速开发平台。它支持iPhone、Android、Palm、Symbian、WP7、Bada和B...

SSD对HADOOP集群性能提升 调研及测试计划

本文主要调研SSD对于HADOOP集群性能的影响,并制定相应的测试计划,性能影响主要针对常见的HADOOP,HBASE,HIVE三个组件。 通过调研发现,组件自身也在考虑SSD对其产生的性能影响,并做...

全栈性能测试修炼宝典 JMeter实战

  • 2017年12月11日 11:11
  • 109.07MB
  • 下载

性能测试监控工具-nmon

  • 2017年12月13日 09:53
  • 565KB
  • 下载

sysbench的安装和做性能测试

sysbench是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况。关于这个项目的详细介绍请看:http://sysbench.sourceforge.ne...

第二版 软件性能测试

  • 2017年11月25日 20:12
  • 92.35MB
  • 下载

Mongodb亿级数据量的性能测试

进行了一下Mongodb亿级数据量的性能测试,分别测试如下几个项目: (所有插入都是单线程进行,所有读取都是多线程进行) 1) 普通插入性能 (插入的数据每条大约在1KB左右) 2) 批量插...
  • zrjdds
  • zrjdds
  • 2016年08月09日 09:48
  • 1854
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Fresco调研与性能测试
举报原因:
原因补充:

(最多只允许输入30个字)