App 优化(一)

本文探讨了App优化的重要性,包括提升UI响应速度、减少内存占用和提高用户体验。重点介绍了使用Instruments分析性能、避免主线程阻塞、利用缓存、选择合适的数据结构、内存管理以及滑动优化等方面的方法。此外,还提到了lua脚本优化和计算代码运行时间的技巧,为iOS App开发提供了一套实用的优化策略。
摘要由CSDN通过智能技术生成

优化的目的:使各种UI的反应灵敏,减少卡顿;提高运行速度;降低内存占用;提升用户体验;

第一部分:

一:instruments

使用instruments分析器分析工程性能,不要凭空想象;比如要查看程序哪些部分耗时时,可以使用Time Profiler,要查看内存是否泄漏时,可以使用Leaks等;

二:不要阻塞主线程

在iOS里关于UIKit的操作都是放在主线程中的,为防止UI可能无法及时响应事件,视觉上产生卡顿的感觉,要避免主线程阻塞;大多数阻塞主线的情况是在主线程做IO操作,比如文件的读写(包含数据库、图片、json文本或者log日志等),尽量将这些操作放到子线程进行(如果数据库有一次有较多的操作,记得采用事务处理【备注】,性能相差会挺大的),或者在后台建立对应的dispatch queue 来做这些操作(比如一个低级别的serial  queue【连续队列】来负责log文件的记录),程序中的代码逻辑最好不要使用同步逻辑【备注】

三:使用cache

一般为了提升用户体验,都会在应用中使用缓冲。比如:图片资源可以使用SDWebImage开源库实现图片缓冲,该库中实现了一个图片缓冲的功能;

获取资源的具体过程如下:

业务层----> ResourceManager(资源管理)--->memory cache(内存缓冲)----> disk(硬盘)  ---> internet(因特网)  【cache简单示意图】

具体描述:业务层根据资源的url向resourceManager获取应用的资源,resourceManager首先会到memory cache中获取资源,memory cache可以利用NSCache实现,因为NSCache首先是线程安全的,而且在收到内存警告的时候会自动释放对应的内存;如果memorycache中没有对应的资源再去disk中查找,disk也没有的话再去internet中获取,获取到的话,会更新到memorycache和disk中;

四:减少程序启动过程中的任务:

当用户点击app的图标之后,程序应该尽可能快的进入到主页面,尽可能减少用户的等待时间;比如:我们的应用程序在启动的时候会去做3d渲染操作,完成之后再进入首页展示,但其实我可以先进入首页,将3d渲染的任务放到子线程去完成,缩短用户需要等待的时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值