我想用Go来做数值计算,做了一个简单的实验,发现同样的矩阵运算,Go所用的时间是用C的2.5倍左右. 下面是我的编译命令:
Go : gccgo -g -O3 *.go;
C: gcc -std=c99 -g -O3 *.c
这里,gccgo 后面必须要有参数-g, 为了公平起见,在编译C代码时,我也用了这个参数.我知道Go在引用数组元素时是要进行边界检查的,怎么关闭边界检查?否则,Go是不能胜任大规模的数值运算的.
我测试了一下 go 1.2已经不支持-B了
go build -compiler gc -gcflags -B -gcflags -S gotest.go
#4
更多评论
我加入-B编译,发现原来需要2.38s,现在需要10.7s.有点失望,我很喜欢C的自由,但是缺少一些命名空间这样方便的特性,本来希望Go能全面超越C的
#2