使用图片和数据缓存技术提升App性能(第4章) 之一

发布时间:2020-07-27 01:37:47 作者:iKingLai
来源:网络 阅读:824

在本章,你会学到以下东西:

           1)    你应该缓存什么

           2)    你应该什么时候缓存

           3)    如何实现缓存

           4)    你应该在哪里缓存数据和图片


对于如今大多数的apps,开发者通常从他们自己的服务器加载数据或者从第三方服务获取数据。比较少的apps会将数据存储在文件系统中,然后在必要的时候加载显示给用户。几乎没有apps不使用网络或文件IO。因此,理解这些处理类型产生的影响,能够帮助你更简单的定位和解决问题。


网络,文件,内存处理时的不同性能


让我们看一下从文件系统加载一张图片到内存和从一台给定的服务器加载到内存花费了多少时间。当然,这个结果取决于服务器处理请求的速度,网络的速度,服务器到测试机的距离。但是,我想要说明一个重要的概念,通过网络加载一张图片要比从文件系统中加载慢的多,从文件系统中加载要比图片本身就在内存中慢的多。我是基于加载一张50kb的图片来进行性能测试的。下面是测试的结果:


文件加载时间:0.001147

网络加载时间:4.160634


从文件系统加载图片花了1ms,而从网络加载花了4s -- 巨大的差别!1ms对于性能几乎不会产生什么影响;但是,如果需要同时加载10-20张图片,其中有些图片尺寸比较大 -- 可能超过几百 kbs。这些图片总的加载时间将会超过数秒钟。



如何确定瓶颈


从文件或网络加载有两个主要问题。


因为从文件/网络加载 data/p_w_picpaths 花的时间比从内存中加载花的时间多,而这个加载过程通常是性能的瓶颈,如果你的apps必须等待从网络返回数据,或其他必须等待的地方返回数据。所以当你遇到性能问题时,你首先要测试的就是文件或网络加载数据。像在第2章看到的,你可以使用 System Activity和File Activity观察数据加载过程。图4-1显示了UI的这些性能测试指标。

使用图片和数据缓存技术提升App性能(第4章) 之一

图4-1显示的file activities包括了加载和写文件/目录,还有读文件属性。图4-2展示了每一个activity的更多细节,能够帮助你查看哪种类型的file activities运行的比较频繁。


使用图片和数据缓存技术提升App性能(第4章) 之一


图4-3和4-4显示了更多关于System Usage的细节,它更加通用,覆盖了更多的数据类型。如图4-4,有很多plist和nib的activities。


今天暂时介绍到这里,后续敬请期待。。。




推荐阅读:
  1. iOS优化内存,提升性能 之五
  2. iOS优化内存,提升性能 之四

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

ios 性能优化 4章 pp

上一篇:iOS instancetype与id的比较

下一篇:内存管理

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》