下面简单的说下这三者的区别
CFAbsoluteTimeGetCurrent是属于CoreFoundation的
而CACurrentMediaTime()是属于QuartzCore的
NSDate是属于Foundation框架的东西
CFAbsoluteTimeGetCurrent和NSDate这两个都是会和网络时间进行同步的。有的时候可能会出现偏差的时候,比如说可能慢了两秒啊,快了两秒啊。
所以我们在测试效率的时候最好不用它。
而CACurrentMediaTime()为系统内建时间,依赖于硬件。不会根据外部的时间的变化而变化,和系统的upTime有关,就是系统运行了多少时间,我们可以通过终端命令upTime来查看。
根据资料显示CACurrentMediaTime(),返回的就是开机后设备一共运行了(设备休眠不统计在内)多少秒。只受设备重启和休眠行为影响。
CFAbsoluteTimeGetCurrent()和[NSDate timeIntervalSinceReferenceDate]是同样的,都是以2001/01/01 GMT为基准时间,返回实例保存的时间与2001/01/01 GMT的时间间隔。
CACurrentMediaTime 经常被用于测试代码的效率