博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Objective-C、C++和swift 的运行效率比较
阅读量:5323 次
发布时间:2019-06-14

本文共 1559 字,大约阅读时间需要 5 分钟。

自己做iOS开发,以后慢慢都要转swift,前段时间看到网上的一个帖子,说swift的运行效率奇低,觉得自己有必要验证一下。

我用了一个最简单的加法运算,从0加到10000000,看三种语言的时耗。

swift 2.2:

import Foundationlet start = CFAbsoluteTimeGetCurrent()var sum = 0for i in 0...10000000{    sum += i;}print("swift")print(sum)print(String(CFAbsoluteTimeGetCurrent() - start) + "s")

运行结果:

Objective-C 2.0:

1 #import 
2 3 int main(int argc, const char * argv[]) { 4 @autoreleasepool { 5 NSInteger sum = 0; 6 CFTimeInterval start = CFAbsoluteTimeGetCurrent(); 7 for (int i = 0; i <= 10000000; i++) { 8 sum += i; 9 }10 CFTimeInterval end = CFAbsoluteTimeGetCurrent();11 CFTimeInterval dur = end - start;12 printf("Objective-C sum=%ld\n",sum);13 printf("dur:%f s\n",dur);14 15 }16 return 0;17 }

运行结果:

C++ 11:

1 int main(int argc, const char * argv[]) { 2     chrono::system_clock::time_point startTime = chrono::system_clock::now(); 3     long sum = 0; 4     for (int i = 0; i < 10000000; i++) { 5         sum += i; 6     } 7     chrono::system_clock::time_point endTime = chrono::system_clock::now(); 8     cout << "C++ sum: " << sum << endl; 9     cout << "duration: " <<(endTime - startTime).count()*1.0/CLOCKS_PER_SEC << "s" << endl;10     return 0;11 }

运行结果:

 

 运行结果可以发现:C++的效率比Objective-C 和 swift 的效率要高,C++ 只比 Objective-C 稍高一点,且二者的精度都比swift的低,要那么高精度有什么用,不知道苹果的用意。CFAbsoluteTimeGetCurrent,函数的内部设置导致的把,是double类型的。C++运行速度是swift运行的两倍,运行结果会和硬件也有关系,如CPU主频等。当然swift还在持续改进,swifter们不要太头大。持续关注吧。

 

转载于:https://www.cnblogs.com/wjw-blog/p/5710561.html

你可能感兴趣的文章
移动端事件探索总结1
查看>>
转:Can not issue data manipulation statements with executeQuery()错误解决
查看>>
详解C#委托,事件与回调函数(转)
查看>>
744. Find Smallest Letter Greater Than Target
查看>>
java实现二维码的生成.
查看>>
溃烂中的代码
查看>>
letecode [38] - Count and Say
查看>>
Windows Phone开发(13):如何规范用户的输入行为 转:http://blog.csdn.net/tcjiaan/article/details/7341513...
查看>>
error LNK2019: 无法解析的外部符号 该符号在函数 中【转】http://blog.sina.com.cn/s/blog_51890fea0100l41h.html...
查看>>
怎么卸载hexo
查看>>
如何将域名部署到Tomcat中,用域名访问服务器
查看>>
08.08 web字体 :语法 兼容性写法 字体格式 工具 字体颜图标 多列布局:相关属性 伸缩盒:概念 相关属性...
查看>>
南阳737----石子合并(一)
查看>>
js、jquery中全局替换replace
查看>>
一次U9身份验证http数据对接
查看>>
使用WCF进行跨平台开发之一(WCF的实现、控制台托管与.net平台的调用)
查看>>
Android 发展思路
查看>>
Pythonic
查看>>
contentprovider的学习实例总结
查看>>
Sharepoint 自定义字段
查看>>