目录:
- 测试环境
- 测试结果
- 测试结果说明
- 关于 BenchmarksGame 的测试差异
- 官方的测试结论
最近Go1.1正式发布, 根据官方的说法, Go1.1性能比Go1.0提升基本有30%-40%, 有时更多(当然也有不明显的情况).Go1.1的详细介绍: Go1.1新特性介绍(语言和库更完善/性能提高约30%) http://www.linuxidc.com/Linux/2013-05/84325.htm .这里是针对Go1.1和C语言的性能测试: 测试的重点是语言的性能, 当然也会受到标准库性能的影响.
测试环境
- 测试程序: $GOROOT/test/bench/shootout/timing.sh
- 硬件配置: i7 8核, 16GB内存
- 操作系统: CentOS6.3 x86_64
gcc和
gc版本:
gcc -vgcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC)go versiongo version go1.1 linux/amd64 测试结果
$GOROOT/test/bench/shootout/timing.shfasta -n 25000000gcc -m64 -O2 fasta.c0.86u 0.00s 0.87rgc fasta0.85u 0.00s 0.86rgc_B fasta0.83u 0.00s 0.83rreverse-complement < output-of-fasta-25000000gcc -m64 -O2 reverse-complement.c 0.45u 0.05s 0.50rgc reverse-complement 0.60u 0.05s 0.65rgc_B reverse-complement 0.55u 0.04s 0.59rnbody -n 50000000gcc -m64 -O2 nbody.c -lm5.51u 0.00s 5.52rgc nbody7.16u 0.00s 7.18rgc_B nbody7.12u 0.00s 7.14rbinary-tree 15 # too slow to use 20gcc -m64 -O2 binary-tree.c -lm0.31u 0.00s 0.31rgc binary-tree1.08u 0.00s 1.07rgc binary-tree-freelist 0.15u 0.00s 0.15rfannkuch 12gcc -m64 -O2 fannkuch.c 26.45u 0.00s 26.54rgc fannkuch 35.99u 0.00s 36.08rgc fannkuch-parallel73.40u 0.00s 18.58rgc_B fannkuch 25.18u 0.00s 25.25rregex-dna 100000gcc -m64 -O2 regex-dna.c -lpcre 0.25u 0.00s 0.26rgc regex-dna1.65u 0.00s 1.66rgc regex-dna-parallel 1.72u 0.01s 0.67rgc_B regex-dna1.64u 0.00s 1.65rspectral-norm 5500gcc -m64 -O2 spectral-norm.c -lm9.63u 0.00s 9.66rgc spectral-norm9.63u 0.00s 9.66rgc_B spectral-norm9.63u 0.00s 9.66rk-nucleotide 1000000gcc -O2 k-nucleotide.c -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -lglib-2.02.62u 0.00s 2.63rgc k-nucleotide 2.69u 0.01s 2.71rgc k-nucleotide-parallel3.02u 0.00s 0.97rgc_B k-nucleotide 2.66u 0.01s 2.68rmandelbrot 16000gcc -m64 -O2 mandelbrot.c20.95u 0.00s 21.01rgc mandelbrot23.73u 0.00s 23.79rgc_B mandelbrot23.72u 0.00s 23.79rmeteor 2098gcc -m64 -O2 meteor-contest.c 0.05u 0.00s 0.05rgc meteor-contest 0.06u 0.00s 0.07rgc_B meteor-contest 0.06u 0.00s 0.06rpidigits 10000gcc -m64 -O2 pidigits.c -lgmp 0.77u 0.00s 0.77rgc pidigits 1.45u 0.01s 1.44rgc_B pidigits 1.45u 0.01s 1.43rthreadring 50000000gcc -m64 -O2 threadring.c -lpthread 12.05u 261.20s 216.36rgc threadring 6.61u 0.00s 6.63rchameneos 6000000gcc -m64 -O2 chameneosredux.c -lpthread 4.04u 21.08s 4.20rgc chameneosredux 4.97u 0.00s 4.99r