原文 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++最快,但是STL hashmaps 的慢了很多,memory footprint
C#很快,但是在處理異常,矩陣乘法和迴圈嵌套上面有些問題
JAVA 的hashmaps最快, 而且異常處理很強悍
C++最快,但是java和C#的開發速度比C++快很多,總之有得必有失