有没有办法确定方法需要执行多长时间(以毫秒为单位)?
我正在寻找Android的SystemClock.currentThreadTimeMillis()或Microsoft的GetThreadTimes()或Posix clock_gettime(CLOCK_THREAD_CPUTIME_ID,)和pthread_getcpuclockid()函数的iOS模拟来测量多线程应用程序中函数使用的实际"干净"时间.也就是说,我不想测量功能中花费的实际挂钟时间,而是测量CPU上的时间.
我在stackoverflow和其他地方找到了有关这方面的有趣讨论.不幸的是,它们都不适用于iOS.
在iOS上有这样的功能吗?
我正在尝试基于MVC模型实现秒表.
秒表使用NSTimer,-(void) tick每次超时都会调用选择器.
我试图将秒表作为可重用性的模型,但是我遇到了一些关于如何为每个滴答更新视图控制器的设计问题.
首先,我使用tick方法创建了一个协议,并使视图控制器成为委托.然后,视图控制器根据每个刻度线上的计时器属性更新视图.elapsedTime是一个只读的NSTimeInterval.
它有效,但我认为这可能是糟糕的设计.我是Objective-C/Cocoa Touch初学者.我应该使用像KVO这样的东西吗?或者是否有更优雅的解决方案让模型通知elapsedTime已更改的视图控制器?
我正在做一个需要计时器的应用程序。我已经尝试过,NSTimer但NSTimer总是会丢失或延迟。iOS SDK中是否有一个可以准确记录时间的类。20ms到40ms之间的精度是可以的。我希望能够在固定的时间间隔内更改图像。
NSTimer *timer1 = [NSTimer scheduledTimerWithTimeInterval:.04f target:self    selector:@selector(timer1) userInfo:nil repeats:YES];
- (void)timer1
{
   NSLog(@"timer1 timer %@",[NSDate date]);
}
ios ×5
objective-c ×4
cocoa-touch ×2
nstimer ×2
time ×2
date ×1
nsdate ×1
nsrunloop ×1
optimization ×1
profiling ×1
pthreads ×1