CGo のパフォーマンスに関する考慮事項
CGo 関数と純粋な Go 関数の実行時間を比較しましたが、cgo 関数の方がパフォーマンスが遅いことがわかりました。 。テスト コードは有効に見えますが、この差異を説明できる根本的な要因があります。
CGo 関数は、C/C コードの呼び出しに伴うオーバーヘッドによりパフォーマンスが低下します。パフォーマンスを最適化するには、CGo 呼び出しの頻度を最小限に抑えることをお勧めします。ただし、この例では、CGo 関数を繰り返し呼び出すよりも、ループを C コードに移動した方が効率的である可能性があります。
Go での Goroutine のセットアップと実行のいくつかの側面により、C コードの期待に挑戦する可能性があります。
安定性を確保するために、CGo は従来のスタックを使用して別のスレッドで C コードを実行することを選択します。
C を使用してコードを最適化するのが一般的な Python などの言語とは異なり、Go は同等の C と Go の間のパフォーマンスの差が小さくなります。 code.
したがって、一般的には、主に外部ライブラリとのインターフェースとして CGo を使用し、場合によっては Go コードからの呼び出しを減らすために小さな C ラッパー関数を使用することをお勧めします。
以上がCGo 関数が Pure Go 関数よりも遅いのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。