C# 与 C 、 C++ 、 D 、 Java 的性能比较
(文章出自http://mag.vchelp.net) jason
C# 性能能赶上编译型的 C/C++/D 和中间代码运行时解释的 java 吗?
微软发布了 .net 平台和 .net 平台支持的多种语言,包括 C#,vb.net, 受管 (managed extensions) 的 C++. 它们构成的体系能同时满足开发出高效的服务器架构,和开发部门对强壮的多功能的接口的需求.
和其他众多程序员一样,拿新开发语言与日常用到的语言作比较和选择的时候,我对新玩意总有莫名的偏见和怀疑.本篇文章将会讨论 .net 平台的优点,特别是相关的 C#. 我们拿 C# 和其他开发语言在高性能软件开发方面,作定量的性能比较.
因为 c# 程序编译运行分为两部分:先编译成中间代码,然后是中间代码的运行时解释执行,所以我们不仅会把他跟纯编译型的 C/C++/D 语言相比,也会把他与典型的 ( 中间代码运行时解释 ) 的 Java 语言作比较. Java 无疑是一个成熟的语言,应用在各个计算机领域. Java 程序先被编译成中间代码,然后运行时通过 java 虚拟机解释成本地机器码执行.由此看来, .net 平台,特别是为首的 c# 语言,借鉴了 java 的很多东西,包括语法和运行时支持.
对新语言(或者说时语言 + 对应的库 + 该语言的运行时支持)作完整公平的性能比较算是一个庞大考验.本文对 c# 与 C/C++/D 就开发中都涉及到的基本共通点作初步的性能比较,同时还包括各个语言所带的库的性能比较.包括:
1. 运行一次完整的程序(转载执行一个程序的时间)
2. 算法和递归(计算圆周率和 Eratorshnes's sieve )
3. 类型转换( in