一、CPU原理
- OC是一种混编语言,如果你在计算过程中采用基本的类型比如int, double等计算时间非常小,比Swift,Java采用基本数据类型计算还小。如果是采用OC的类型,比如NSNumber等,就会比较耗时。
- OC在快速创建对象时,比其他纯粹的面向对象的语言要慢。
- 复杂度计算,通过indexOfObject实现的隐式二次算法的例子,如果传入参数是一个数组,使用indexOfObject方法执行检查时,执行次数为O(m),如果该成NSSet,已经摊销了 O(1)用于检查存在。
二、测量和工具
-
top 在命令行输入:
top -u
命令 -
time 命令
-
sample 命令,配合top命令和time命令查看具体信息
-
Xcode测量工具:打开Xcode主窗口左侧的调试导航器(command+7)
-
Instrument:作为一个功能强大的采样工具,它的输出信息通常是指示性的不是定性的。
-
instrument 设置和收集数据:Xcode->Production->Profile->Time Profile启动时间分析工具。点击file->RecordingOption->Time Limited 设置检测时间限制
-
instrument 基本分析:详细信息视图中的每一行显示单个函数或方法,对于每个函数,显示当前函数和子函数的总运行时间(以毫秒为单位)。小图标表示函数的来源,头像表示用户ÿ