请参阅下面的这个问题
How to log a method's execution time exactly in milliseconds?
我将代码转换为swift,就像这样
//OBjective-C
//#define TICK NSDate *startTime = [NSDate date]
//#define TOCK NSLog(@"Time: %f", -[startTime timeIntervalSinceNow])
class AppDelegate: NSObject, NSApplicationDelegate {
var TIMER = NSDate()
@IBOutlet weak var window: NSWindow!
func TICK()
{
TIMER = NSDate()
}
func TOCK(){
println("\(-TIMER.timeIntervalSinceNow)")
}
func applicationDidFinishLaunching(aNotification: NSNotification) {
// Insert code here to initialize your application
TICK()
TOCK()
}
Swift中的时间:3.40343e-05 而Objective-C:0.000009 为什么斯威夫特这么慢?
谢谢。
答案 0 :(得分:0)
如果您想在代码中的任何地方使用并避免使用全局变量,那么您可以使用实用程序类中的静态函数执行相同的方法(我称之为Debug类):
fun doh x y z = z (x y ) (y + 1);
val doh = fn : (int -> 'a) -> int -> ('a -> int -> 'b) -> 'b
然后使用:
class Debug {
private static var tickTimestamp: Date = Date()
static func tick() {
print("TICK.")
tickTimestamp = Date()
}
static func tock() {
print("TOCK. Elapsed Time: \(Date().timeIntervalSince(tickTimestamp))")
}
}