C++, C# 和 Java 性能比较

原文 http://www.tommti-systems.de/go.html?http://www.tommti-systems.de/main-Dateien/reviews/languages/benchmarks.html

 

很古老的一篇文章,但是结果很有启发性, 指出了几种语言性能差别到底在什么地方, 不过测试版本都比较老, 所以只节选了前面一段 。

 

测试环境

AMD Athlon XP 2200+
1024 MB DDR 266
VIA KT266A
Windows XP Prof. + SP1

 

Java 版本
Java 1.4.2_03
Java 1.5 (alpha, 11. Dec. 03)
编译选项: -g:none
运行参数: -mx1024m

 

C# 版本
.Net Framework 1.1.4322 (Microsoft (R) Visual C# .NET Compiler version 7.10.3052.4)
编译选项: /optimize+ /debug- /checked-
运行参数:

 

C++ 版本
Microsoft Visual Studio Net 2003 (Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86)
编译选项:  /O2 /Oi /Og /Ot /EHsc /arch:SSE
Intel(R) C++ Compiler for 32-bit applications, Version 8.0   Build 20031017Z
编译选项:  /fast /G6 /Oi /Og /Ot /EHsc /arch:SSE
运行参数:

 

源代码

原始的源代码

http://www.cowell-shah.com/research/benchmark/code 

http://dada.perl.it/shootout/

http://www.bagley.org/~doug/shootout

修改后的源代码

Java
C#
C++ 

 

测试结果
最大内存用量:
Java - 163 MB
C# - 111 MB
Cpp - 98 MB

 

时间单位 毫秒

C++, C# 和 Java 性能比较_第1张图片

C++最快,但是STL hashmaps 的慢了很多,memory footprint
C#很快,但是在处理异常,矩阵乘法和循环嵌套上面有些问题
JAVA 的hashmaps最快, 而且异常处理很强悍
C++最快,但是java和C#的开发速度比C++快很多,总之有得必有失

 

你可能感兴趣的:(java)