❏ 站外平台:

更新:系统级编程语言性能大PK

| 2013-07-29 08:32      

C/C++已经统治系统编程很久,除了ObjectiveC之外语言都无法获得很高的关注。

有人用多种系统级语言编写了同样的地图生成工具来测试他们的性能,包括D(DMD,LDC,GDC)、Go(GCC-Go,6g)、Haskell(GHC)和Rust。相比C/C++,这些语言都原生支持了诸如垃圾回收这些高级特性,也因此无一能达到C/C++的运行速度。

本文发的时候,作者优化不够,现在在几天的修改以后结果完全不一样了。

这其中表现最差的是原生Go语言编译器6g,只有Clang22%的速度,而表现最好的是基于LLVM的D语言编译器LDC,达到了79%。由于原生就使用了LLVM编译,Rust成为各语言原生编译器里最快的一个,但也只达到了45%。

从结果来看,D语言一定是首选。由于D语言许多特性都依赖垃圾回收,如果需要关闭垃圾回收而又要保持良好的使用体验,则推荐Rust。

其中表现最好的是基于LLVM的D语言编译器LDC,与同样基于LLVM的C编译器Clang相比,可以达到它96%的速度。其次是基于LLVM的Rust编译器,达到了89%。因为LLVM编译的优化做的太好,即使GCC都只能达到Clang 72%。另一个令人惊讶的结果是,基于JVM的Scala竟然能达到Clang75%的速度,甚至超过了GCC。 

Compiler Speed(s) %Fastest
Clang 0.280 100%
LDC 0.292 96%
Rustc 0.316 89%
Scala 0.375 75%
GCC 0.390 72%
LLVM-GHC 0.428 65%
6g 0.544 51%
GHC 0.546 51%
DMD 0.640 37%
GCCGO 0.850 33%

via http://www.solidot.org/story?sid=35724 

via http://www.solidot.org/story?sid=35754 

 

 已同步至 linux的微博


最新评论


返回顶部

分享到微信

打开微信,点击顶部的“╋”,
使用“扫一扫”将网页分享至微信。