我目前在玩 go,它的汇编、浮点运算性能 ( float32) 和纳秒级的优化。我对一个简单的函数调用的开销有点困惑:func BenchmarkEmpty(b *testing.B) { for i := 0; i < b.N; i++ { }}func BenchmarkNop(b *testing.B) { for i := 0; i < b.N; i++ { doNop() }}doNop的实现:TEXT ·doNop(SB),0,$0-0 RET结果(go test -bench .):BenchmarkEmpty 2000000000 0.30 ns/opBenchmarkNop 2000000000 1.73 ns/op我不习惯组装和/或 go 的内部结构。go编译器/链接器可以内联汇编中定义的函数吗?我可以以某种方式给链接器一个提示吗?对于一些简单的函数,比如“添加两个 R3 向量”,这会消耗所有可能的性能提升。(转到 1.4.2,amd64)
1 回答
- 1 回答
- 0 关注
- 245 浏览
添加回答
举报
0/150
提交
取消