1.Developing for Performance
Apple Developer: Developing for Performance
性能是软件设计中经常被忽视的一个方面,直到它成为一个严重的问题。如果您等到开发周期结束时才进行性能调优,那么要实现任何显著的改进可能就太晚了。性能是设计阶段的早期内容,并在整个开发周期中不断改进
1.1 What Is Performance:性能优化的几个原则
CPU Time
-
Goal: If your program has nothing to do , it should not consume CPU time.
如果您的程序无事可做,它不应该消耗CPU时间。 -
Goal: Move work out of the CPU whenever you can
尽可能将工作移出CPU
Memory Space
-
Goal: Reduce the memory footprint of your program
减少程序的内存占用
Mass Storage Space
-
Goal: Eliminate unnecessary file operations and delay others until the information is actually needed
消除不必要的文件操作,并将其他操作延迟到实际需要信息时
The Perception of Speed
-
Goal: Make your program responsive to the user
使您的程序对用户具有响应性
1.2 Tracking Performance
确保高性能的唯一方法是在产品设计中包含性能目标,并在整个开发过程中根据这些目标对产品进行度量。高性能不是你可以在开发周期结束时移植到代码上的特性:它与这个循环密切相关。在编写代码时,了解它对程序整体性能的影响是很重要的。如果及早发现性能问题,就有很好的机会在为时已晚之前修复它们。
确定你是否达到或超过特定目标的方法是收集指标。苹果提供了几个工具来监控和分析程序的性能。您还可以将度量工具直接构建到代码中,以帮助自动化收集数据的过程。无论您使用哪种方法,您都需要定期使用工具并分析结果。
2.Basic Performance Tips
Apple Developer: Basic Performance Tips
2.1 Take Advantage of Perceived Performance
-
多线程后台执行,在空闲时间执行,保持主线程空闲,可以及时响应用户交互
-
快速开启app,延迟加载不必要的任务。加载必要的界面,先显示界面,然后显示加载中的菊花
-
插件在需要的时候再加载,懒加载资源
2.2 Improve the Concurrency of Your Program’s Tasks
-
用串行队列同步访问共享资源,而不是使用延迟锁