Go でインライン化を制限するための戦略
Go のコンパイラは、関数の本体をその呼び出しサイトに直接埋め込む手法であるインライン化をよく使用します。 。インライン化によりパフォーマンスは向上しますが、望ましくない場合もあります。この記事では、Go でインライン化を防ぐさまざまな方法について説明します。
特定の関数のインライン化を無効にする
特定の関数のインライン化を制限するには、「//go:noinline」を利用します。 「プラグマ。これを関数定義の前に置きます:
//go:noinline func isPrime(p int) bool { // ... }
すべてのインライン化を無効にする
インライン化をグローバルに無効にするには、「-gcflags=-l」フラグを指定してコンパイラを呼び出します。
go build -gcflags=-l primes.go
このフラグは、パフォーマンスよりもコード サイズを優先するようにコンパイラーに指示します。最適化。
以上がGo で関数のインライン化を防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。