// Date 单位 秒
let startTime1 = Date().timeIntervalSinceReferenceDate
sleep(1);
let endTime1 = Date().timeIntervalSinceReferenceDate
print("Date 耗时: \(endTime1 - startTime1)")
// CFAbsoluteTimeGetCurrent 单位 秒
let startTime2 = CFAbsoluteTimeGetCurrent()
sleep(2)
let endTime2 = CFAbsoluteTimeGetCurrent()
print("CFAbsoluteTimeGetCurrent 耗时: \(endTime2 - startTime2)")
// CACurrentMediaTime 单位 秒
let startTime3 = CACurrentMediaTime();
sleep(3)
let endTime3 = CACurrentMediaTime();
print("CACurrentMediaTime 耗时: \(endTime3 - startTime3)");
// dispatch_benchmark 单位 纳秒
// 这个方法并没有被公开声明,所以必须要自己声明。
// 可以用来作为判断代码执行效率的工具
// 怎么在 swift 中使用
var sum = 0
let time = dispatch_benchmark(3) {
for _ in 0...3 {
sum += 1
}
}
print("dispatch_benchmark 耗时: \(time)")
}
第四种在 swift 中的使用
- 先建立一个.h 文件 dispatch_benchmark.h
#import <Foundation/Foundation.h>
extern uint64_t dispatch_benchmark(size_t count, void (^block)(void));
@interface Dispatch_benchmark : NSObject
@end
- 建立桥接文件
#ifndef oc_bridge_header_h
#define oc_bridge_header_h
#import "dispatch_benchmark.h"
#endif /* oc_bridge_header_h */
网友评论