美文网首页
Fresco调研与性能测试

Fresco调研与性能测试

作者: 换个发型换种丑 | 来源:发表于2015-12-17 15:55 被阅读876次

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

何为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

在Fresco的GitHub中,有一个Demo工程。该Demo集成了多种图片加载框架,用于直观地与Fresco的图片加载性能进行比较。

使用Android Studio可以编译Fresco源码,运行Demo。我编译时参考的博文:Android Studio导入Fresco 

使用Eclipse就不能编译源码了,不过可以下载Library工程,直接引用Lib来使用Fresco.


运行Demo

Demo提供了多种图片库来加载图片,这里我们采用Picasso来与Fresco进行比较。

上下滑动列表,观察应用的Java Heap和Native Heap的大小

Picasso


Fresco 


可以看到,使用Picasso的,其Java heap高达38M。而Fresco则将其控制在了10M以内。极大的减小了OOM的风险。

不过Native Heap占用很吓人,80MB。

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

Picasso时的内存


Fresco时的内存 

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

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

原文地址

相关文章

  • Fresco调研与性能测试

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

  • web性能测试工具

    由于项目需要,最近对产品的性能做了简单的性能测试,调研了常用的几款性能测试工具。 本地测试环境 Jmeter Jm...

  • 软件性能测试目录

    软件性能测试Ⅰ 软件性能测试Ⅱ 软件性能测试Ⅲ 软件性能测试Ⅳ 软件性能测试Ⅴ 软件性能测试Ⅵ 软件性能测试Ⅶ 软...

  • LR 第一节

    性能测试流程 注意点: 性能测试用例设计,特别关注数据容量的问题性能测试环境搭建,与被测试环境区分开执行:跑脚本、...

  • 性能测试流程与调优

    性能测试流程与调优 概述 分析性能需求 制定性能测试计划 设计场景 编写脚本和程序初始化配置 执行性能测试 分析结...

  • 性能测试概览目录

    性能测试概览Ⅰ 性能测试概览Ⅱ 性能测试概览Ⅲ 性能测试概览Ⅳ

  • [JPT_02]性能测试-性能指标的分析 & 定义

    目录结构 一、性能测试需求分析与定义 通过前文[JPT_01]性能测试需求分析对性能测试的必要性评估之后,敏捷开发...

  • 性能测试

    先调研如何做性能测试找一些别人做的性能测试的文档查看一下最后自己必须思路清晰才可以,别自己思路都不清晰怎么给别人讲...

  • 玩转电商应用性能调优

    第1章 入门篇—性能测试基础知识 什么性能测试 性能测试类型 性能测试基本流程 性能测试需求分析 性能测试指标

  • 性能测试篇

    一、何为性能测试 性能测试与功能测试其实没什么区别,本质上都是系统测试的一部分,为了验证项目是否符合需求,但是性能...

网友评论

      本文标题:Fresco调研与性能测试

      本文链接:https://www.haomeiwen.com/subject/hhdphttx.html