我目前在玩 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 回答
- 0 關注
- 277 瀏覽
添加回答
舉報
0/150
提交
取消
