CGo 的效能注意事項
您對CGo 和純Go 函數的執行時間進行了比較,cgo 函數表現出較慢的性能。雖然您的測試程式碼看起來有效,但有一些潛在因素可以解釋這種差異。
由於呼叫 C/C 程式碼所涉及的開銷,CGo 函數會導致效能損失。建議最小化 CGo 呼叫頻率以優化效能。但是,對於您的範例,將循環移至 C 程式碼中可能比重複呼叫 CGo 函數更有效。
Go 中 Goroutine 設定和執行的幾個方面可能會挑戰 C 程式碼期望:
為了確保穩定性,CGo 選擇使用傳統堆疊在單獨的執行緒中執行 C 程式碼。
與Python 等使用C 最佳化程式碼很常見的語言不同,Go 提供了等效C 和Go 之間較小的效能差距
因此,通常建議主要使用CGo 來與外部庫交互,可能使用小型C 包裝函數來減少Go 程式碼的呼叫。
以上是為什麼我的 CGo 函數比我的 Pure Go 函數慢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!