Go语言的性能如何?
根据 Go 开发团队和基本的算法测试,Go语言与C语言的性能差距大概在 10%~20% 之间。虽然没有官方的性能标准,但是与其它各个语言相比已经拥有非常出色的表现。
时下流行的语言大都是运行在虚拟机上,如:Java 和 Scala 使用的 JVM,C# 和 VB.NET 使用的 .NET CLR。尽管虚拟机的性能已经有了很大的提升,但任何使用 JIT 编译器和脚本语言解释器的编程语言(Ruby、Python、Perl 和 JavaScript)在 C 和 C++ 的绝对优势下甚至都无法在性能上望其项背。
这里以国外的一个编程语言性能测试网站 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语言在未来的版本中会通过不断的版本优化提高单核运行性能。
还没有评论,来说两句吧...