亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在使用接口時,如何從 Go 中獲得最大性能?

在使用接口時,如何從 Go 中獲得最大性能?

Go
陪伴而非守候 2021-12-20 15:42:07
我正在開發一個模擬器,每個指令都很重要。我們被 Go 吸引是因為接口抽象,但從基準測試來看,調用接口的間接調用比直接調用方法要差 5 倍。然而,我們的項目結構現在依賴于使用接口來繞過循環依賴。有沒有辦法讓接口更快(可疑)或繞過沒有接口的循環依賴?
查看完整描述

2 回答

?
撒科打諢

TA貢獻1934條經驗 獲得超2個贊

如果您看到循環依賴,則表明您的代碼位于不同的模塊中。將所有代碼移動到一個模塊中。那么你不應該需要一個接口。在 Go 中,模塊通常是相當大的分組。不要僅僅為了代碼組織而創建它們。


查看完整回答
反對 回復 2021-12-20
?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

好吧,首先是個壞消息,接口的速度和現在一樣快,可能會改進 1.7,但不會太多。


如果你的接口不是很大,你可以傳遞 funcs 而不是接口。


例子:


func Sort(a sort.Interface) // can be rewritten as

func Sort(ln int, lessFn func(i, j) bool, swapFn func(i, j))

但我 100% 同意@RobNapier。


查看完整回答
反對 回復 2021-12-20
  • 2 回答
  • 0 關注
  • 158 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號