• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Objective-C、C++和swift的运行效率比较

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

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

swift 2.2:

import Foundation

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

运行结果:

Objective-C 2.0:

 1 #import <Foundation/Foundation.h>
 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们不要太头大。持续关注吧。

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
今日份swift学习3发布时间:2022-07-13
下一篇:
Swift3.0服务端开发(四) MySQL数据库的连接与操作发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap