在本章,你会学到以下东西:
网络和文件IO处理如何影响app性能
和缓存算法相关的一般问题和技术
iPhone缓存技术中的特定问题
1) 你应该缓存什么
2) 你应该什么时候缓存
3) 如何实现缓存
4) 你应该在哪里缓存数据和图片
内存消耗和性能之间的权衡
对于如今大多数的apps,开发者通常从他们自己的服务器加载数据或者从第三方服务获取数据。比较少的apps会将数据存储在文件系统中,然后在必要的时候加载显示给用户。几乎没有apps不使用网络或文件IO。因此,理解这些处理类型产生的影响,能够帮助你更简单的定位和解决问题。
网络,文件,内存处理时的不同性能
让我们看一下从文件系统加载一张图片到内存和从一台给定的服务器加载到内存花费了多少时间。当然,这个结果取决于服务器处理请求的速度,网络的速度,服务器到测试机的距离。但是,我想要说明一个重要的概念,通过网络加载一张图片要比从文件系统中加载慢的多,从文件系统中加载要比图片本身就在内存中慢的多。我是基于加载一张50kb的图片来进行性能测试的。下面是测试的结果:
文件加载时间:0.001147
网络加载时间:4.160634
从文件系统加载图片花了1ms,而从网络加载花了4s -- 巨大的差别!1ms对于性能几乎不会产生什么影响;但是,如果需要同时加载10-20张图片,其中有些图片尺寸比较大 -- 可能超过几百 kbs。这些图片总的加载时间将会超过数秒钟。
如何确定瓶颈
从文件或网络加载有两个主要问题。
在app显示图片之前用户需要等很长一段时间。这个时间会根据图片的数量而增加。如果UI在运行时需要加载很多图片,比如像UITableView,用户必须等待很长的时间,当他们想滚动查看更多信息的时候。
它可能会阻塞UI,这样用户就不能和UI恰当的进行交互。第6章也会介绍到这些。
因为从文件/网络加载 data/p_w_picpaths 花的时间比从内存中加载花的时间多,而这个加载过程通常是性能的瓶颈,如果你的apps必须等待从网络返回数据,或其他必须等待的地方返回数据。所以当你遇到性能问题时,你首先要测试的就是文件或网络加载数据。像在第2章看到的,你可以使用 System Activity和File Activity观察数据加载过程。图4-1显示了UI的这些性能测试指标。
图4-1显示的file activities包括了加载和写文件/目录,还有读文件属性。图4-2展示了每一个activity的更多细节,能够帮助你查看哪种类型的file activities运行的比较频繁。
图4-3和4-4显示了更多关于System Usage的细节,它更加通用,覆盖了更多的数据类型。如图4-4,有很多plist和nib的activities。
今天暂时介绍到这里,后续敬请期待。。。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
本文标题:使用图片和数据缓存技术提升App性能(第4章)之一-创新互联
文章起源:https://www.cdcxhl.com/article6/deogig.html
成都网站建设公司_创新互联,为您提供网站改版、App开发、自适应网站、做网站、品牌网站建设、静态网站
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联