为什么差别这么大???

oract · · 3536 次点击
更多评论
go build -gcflags "-N -l" test.go 你用这种方式编译出来结果就差不多了。 <br/> <br/> 如果你学过汇编,可以查看这几个编译结果的汇编代码。<br/> 1,golang开优化:go build -gcflags "-S" test.go<br/> 2,golang关优化:go build -gcflags "-S -N -l" test.go<br/> 3,c不开任何优化:gcc -S test.c<br/> 本质就是编译结果的优化程度不同而已,默认情况下的编译结果效果不好,JLT+JMP混合使用,其实只需要一个就好,编译结果的代码量又多又浪费。<br/><br/> 而且其实你的代码也证明了golang对于编译优化做的还是很基础,毕竟gcc只要一开优化,就会发现你的是无效代码,直接干掉了。<br/>
#1