根據 Go 開發團隊和基本的算法測試,Go語言與C語言的性能差距大概在 10%~20% 之間。雖然沒有官方的性能標準,但是與其它各個語言相比已經擁有非常出色的表現。
時下流行的語言大都是運行在虛擬機上,如:[Java](http://c.biancheng.net/java/)和 Scala 使用的 JVM,[C#](http://c.biancheng.net/csharp/)和 VB.NET 使用的 .NET CLR。盡管虛擬機的性能已經有了很大的提升,但任何使用 JIT 編譯器和腳本語言解釋器的編程語言(Ruby、[Python](http://c.biancheng.net/python/)、Perl 和[JavaScript](http://c.biancheng.net/js/))在 C 和[C++](http://c.biancheng.net/cplus/)的絕對優勢下甚至都無法在性能上望其項背。
這里以國外的一個編程語言性能測試網站 http://benchmarksgame.alioth.debian.org/ 為測試基準和數據源。這個網站可以對常見的編程語言進行性能比較,網站使用都是最新的語言版本和常見的一些算法。
通過對 C(gcc)、C++、Java、JavaScript 和Go語言的測試。性能比較如下表所示,表中數據的單位為秒,數值越小表明運行性能越好。
:-: 常見編程語言的運行性能比較
| 編程語言↓ / 測試用例→ | reverse-complement | pidigits | fannkuch-redux | fasta | spectral-norm | n-body | k-nucleotide | mandelbrot | binary-trees | regex-redux |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| C語言 | 0.42 | 1.73 | 8.97 | 1.33 | 1.99 | 9.96 | 5.38 | 1.65 | 2.38 | 1.45 |
| C++ | 0.6 | 1.89 | 10.35 | 1.48 | 1.99 | 9.31 | 7.18 | 1.73 | 2.36 | 17.14 |
| Go | 0.49 | 2.02 | 14.49 | 2.17 | 3.96 | 21.47 | 14.79 | 5.46 | 35.18 | 29.29 |
| Java | 1.13 | 3.12 | 15.09 | 2.32 | 4.25 | 22.56 | 8.38 | 6.08 | 8.58 | 10.38 |
| JavaScript | 4.3 | N/A | 81.49 | 9.79 | 16.17 | 28.74 | 66.07 | 19.04 | 53.64 | 4.44 |
通過上表可以看出,Go語言在性能上更接近于 Java 語言,雖然在某些測試用例上不如經過多年優化的 Java 語言,但畢竟 Java 語言已經經歷了多年的積累和優化。Go語言在未來的版本中會通過不斷的版本優化提高單核運行性能。
GO語言性能本人并沒有進行實際的測試,本文文章摘自C語言中文網。
文章來源:http://c.biancheng.net/view/4.html