開發(fā)中經(jīng)常要觀察函數(shù)執(zhí)行時(shí)間厚骗,以便于調(diào)優(yōu)浆竭。宏定義是一個(gè)快捷辦法奸鬓。
#define START() NSDate *startTime = [NSDate date]
#define STOP() NSLog(@" took time: %.0f ms", -[startTime timeIntervalSinceNow] * 1000); startTime = [NSDate date]
- (void)test {
START();
for (int i = 0; i < 10000; i++)
{
int r = 100;
int x = arc4random() % r;
int y = arc4random() % r;
BOOL result = [self point:CGPointMake(x, y) isInCircle:60];
NSLog(@"%d-- x= %d:y=%d",result,x,y);
}
STOP();
}
使用示例
- (BOOL)point:(CGPoint)point isInCircle:(CGFloat)radius
{
//hypotf() pow()
CGFloat r2 = radius * radius;
CGFloat x2 = point.x * point.x;
CGFloat y2 = point.y * point.y;
BOOL ret = r2 >= x2+y2;
// BOOL ret = radius >= hypotf(point.x, point.y);
return ret;
}