c、rust、golang、swift性能比较
2016-07-18 11:38
639 查看
mac
计算速度视觉判断是(由好到差):c > rust > swift > golang
内存开销在mac上是(由好到差):c > rust > golang > swift
注:例子都是采用uint64可溢出方式计算fib
如图:
生成文件大小、占用线程数:
注:golang的缺省线程数与CPU核心数有关。
ubuntu
计算速度视觉判断是(由好到差):rust > c > swift > golang
内存开销在ubuntu上是(由好到差):c > golang > swift > rust
如图:
生成文件大小、占用线程数:
Windows
计算速度视觉判断是(由好到差):c(gcc) > golang > rust > c(vs2015)
内存开销在windows上是(由好到差):c(gcc) > c(vs2015) > rust > golang
如图:
生成文件大小、占用线程数:
fib代码描述:
如果输入整数 num <= 2,返回 1;
否则 返回 fib (num - 2) + fib (num - 1)。
例子:计算1~100的fib。
编译:
语言(mac/ubuntu/windows): 命令
c (llvm7.3.0:clang-703.0.31/gcc5.2.1/MinGW:gcc4.9.3 with -std=c11): gcc -Os test_c.c -o test_c
(vs2015:cl 19.00.24210): cl /Os test_c.c /link /out:test_c_VS2015.exe
rust (rustc 1.10.0 and cargo 0.11.0): cargo build --release
golang (go1.6.2/go1.5.1/go1.7rc1): go build -ldflags "-s -w" test_go.go
swift (swift 2.2/swift 3.0-preview1/--): swiftc -O test_swift.swift
注意:[b]以上并非正规测试方案,比较结果仅供参考,并无权威性。[/b]
计算速度视觉判断是(由好到差):c > rust > swift > golang
内存开销在mac上是(由好到差):c > rust > golang > swift
注:例子都是采用uint64可溢出方式计算fib
如图:
生成文件大小、占用线程数:
c 8.3 KB 1 swift 48 KB (2.2) 47 KB (3.0) 1 rust 348 KB 1 golang 1.6 MB (1.6.2) 1.1 MB (1.7rc2) 4 (1.6.2) 5 (1.7rc2)
注:golang的缺省线程数与CPU核心数有关。
ubuntu
计算速度视觉判断是(由好到差):rust > c > swift > golang
内存开销在ubuntu上是(由好到差):c > golang > swift > rust
如图:
生成文件大小、占用线程数:
c 8.6 KB 1 swift 18 KB 1 rust 652 KB 1 golang 1.7 MB 5
Windows
计算速度视觉判断是(由好到差):c(gcc) > golang > rust > c(vs2015)
内存开销在windows上是(由好到差):c(gcc) > c(vs2015) > rust > golang
如图:
生成文件大小、占用线程数:
c (gcc) 67.7 KB 1 c (vs2015) 94.5 KB 1 golang 1.03 MB 5 rust 1.76 MB 1
fib代码描述:
如果输入整数 num <= 2,返回 1;
否则 返回 fib (num - 2) + fib (num - 1)。
例子:计算1~100的fib。
编译:
语言(mac/ubuntu/windows): 命令
c (llvm7.3.0:clang-703.0.31/gcc5.2.1/MinGW:gcc4.9.3 with -std=c11): gcc -Os test_c.c -o test_c
(vs2015:cl 19.00.24210): cl /Os test_c.c /link /out:test_c_VS2015.exe
rust (rustc 1.10.0 and cargo 0.11.0): cargo build --release
golang (go1.6.2/go1.5.1/go1.7rc1): go build -ldflags "-s -w" test_go.go
swift (swift 2.2/swift 3.0-preview1/--): swiftc -O test_swift.swift
注意:[b]以上并非正规测试方案,比较结果仅供参考,并无权威性。[/b]
相关文章推荐
- 解析Swift中闭包的循环引用
- Swift - 不使用pods如何正确添加类似Alamofire这样的库
- Swift语法之 ---- ?和!区别
- OC/Swift 根据label字数字体返回实际高度
- swift 中的 感叹号 问号 和 双问号用法详解
- KVO and Swift
- KVO and Swift
- KVO and Swift
- RxSwift Runtime分析(利用OC消息转发实现IOS消息拦截)<原理同ReactiveCocoa>
- Swift的循环引用以weak
- Swift 类和结构体总结
- Swift 枚举(enumeration)类型总结
- swift计算型属性与懒加载的对比
- swift 学习笔记三
- Swift 闭包(Closure)总结
- 从Go、Swift出发:语言的选择需谨慎
- Swift初学入门之控制台输入函数
- 快速排序/二分插入排序的swift以及Java实现
- swift小结02-基础篇
- Swift 闭包详解