Swift vs Objective-C的表现
发布时间:2020-12-14 05:51:38 所属栏目:百科 来源:网络整理
导读:我只是比较 Swift和 Objective-C的表现。为此,我正在使用NSDate来衡量所花费的时间,但是我在Swift和Objective-C之间有很大的区别。我刚跑了一个空的循环十万次。这是我的代码, 在Objective-C中, NSDate * start = [NSDate date];for (int i=0; i=100000;
|
我只是比较
Swift和
Objective-C的表现。为此,我正在使用NSDate来衡量所花费的时间,但是我在Swift和Objective-C之间有很大的区别。我刚跑了一个空的循环十万次。这是我的代码,
在Objective-C中, NSDate * start = [NSDate date];
for (int i=0; i<=100000; i++) {
}
NSDate * end = [NSDate date];
double timeTaken = [end timeIntervalSinceDate:start] * 1000;
timeTaken是0.24毫秒 在斯威夫特, var start = NSDate()
for i in 0...100000
{
}
var end = NSDate()
var timeTaken = end.timeIntervalSinceDate(start) * 1000
TimeTaken在Swift中为74毫秒,与Objective-C相比,这是一个很大的差异。 我在测量中做错了吗?
我不认为这是一个很公平的比较。你只是要求Objective-C执行一个循环,但是你要求Swift生成一个很大的范围(特别是Range< Int>),然后迭代它。在我的计算机上,Swift大约需要0.53秒的时间来遍历一百万的范围,但是只有大约0.012秒才能执行一个循环到一百万,这与Objective-C中程序的0.002秒相比。
我的程序(两个项目都设置为命令行工具) import Foundation
let start = CFAbsoluteTimeGetCurrent()
//for i in 0...1000000 {
//
//}
for var i = 0; i <= 1000000; ++i {
}
let timeTaken = CFAbsoluteTimeGetCurrent() - start
println(timeTaken)
和Objective-C #import <Foundation/Foundation.h>
int main(int argc,const char * argv[]) {
@autoreleasepool {
double start = CFAbsoluteTimeGetCurrent();
for (int i = 0; i <= 1000000; i++) {
}
double timeTaken = CFAbsoluteTimeGetCurrent() - start;
NSLog(@"%f",timeTaken);
}
return 0;
}
删除自动释放池甚至刮掉千分之一千秒。但是,总而言之,差异不在任何接近大小的地方。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
