Objective-C、C++和swift 的运行效率比较
自己做iOS开发,以后慢慢都要转swift,前段时间看到网上的一个帖子,说swift的运行效率奇低,觉得自己有必要验证一下。
我用了一个最简单的加法运算,从0加到10000000,看三种语言的时耗。
swift 2.2:
1 2 3 4 5 6 7 8 9 10 | 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们不要太头大。持续关注吧。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具