我目前在玩 go,它的匯編、浮點(diǎn)運(yùn)算性能 ( float32) 和納秒級的優(yōu)化。我對一個簡單的函數(shù)調(diào)用的開銷有點(diǎn)困惑: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的實現(xiàn):TEXT ·doNop(SB),0,$0-0 RET結(jié)果(go test -bench .):BenchmarkEmpty 2000000000 0.30 ns/opBenchmarkNop 2000000000 1.73 ns/op我不習(xí)慣組裝和/或 go 的內(nèi)部結(jié)構(gòu)。go編譯器/鏈接器可以內(nèi)聯(lián)匯編中定義的函數(shù)嗎?我可以以某種方式給鏈接器一個提示嗎?對于一些簡單的函數(shù),比如“添加兩個 R3 向量”,這會消耗所有可能的性能提升。(轉(zhuǎn)到 1.4.2,amd64)
- 1 回答
- 0 關(guān)注
- 264 瀏覽
添加回答
舉報
0/150
提交
取消