IMBenchmark
是一个轻量级的辅助类,它会对一段代码进行基准测试,并给出这段代码执行的平均时间。需要注意的是,过早的优化可能会是一个徒劳的过程,可能会导致你走上一条不会带来丰硕成果的路。思考清楚为什么事情会变慢,以及如何测试你的假设是很重要的。IMBenchmark 应该只是你使用(Instruments 是神器)来分析你的应用程序的许多测量工具之一。
IMBenchmark
不应在生产或发布版本中使用。这仅用于测试和分析。在您的应用程序的发布版本中保留此代码可能会比您测试的内容慢得多。
pod 'IMBenchmark'
或者
#import "IMBenchmark.h"
在您想要基准测试的类中[IMBenchmark benchmark:^{
// Code to benchmark here
} completion:^(uint64_t nanoseconds) {
NSLog(@"%llu ns", nanoseconds);
}];
第一个块是您想要基准测试的内容。第二个块返回第一个块的平均运行时间(纳秒)。此方法将运行块 10,000 次,并对结果进行平均,以防止基准测试过程中的异常。要在运行上述代码之前更改基准测试过程中的迭代次数,请在调用此方法之前执行以下操作
[IMBenchmark setIterationCount:10001]
目前这段代码正在使用 libdispatch 库的半私有函数 dispatch_benchmark()
,不幸的是,使用该函数需要进行声明。我无法从 Swift 项目或游乐场中获取这个函数,但也许我对 Swift 还不够了解,所以可能做错了。与此同时,我建议您使用桥接头并在 Swift 中调用 ObjC 版本。
IMBenchmark 使用标准 MIT 许可证,可在以下位置找到:此处。