Heim >Backend-Entwicklung >Golang >Wie verhindert man das Inlining von Funktionen in Go?

Wie verhindert man das Inlining von Funktionen in Go?

Barbara Streisand
Barbara StreisandOriginal
2024-12-01 16:50:11442Durchsuche

How to Prevent Function Inlining in Go?

Funktions-Inlining in Go verhindern

In Go kann der Compiler die Codeleistung automatisch durch Inlining von Funktionen optimieren. Es kann jedoch Fälle geben, in denen Sie dieses Verhalten deaktivieren möchten.

Frage:

Wie können Sie den Go-Compiler anweisen, eine bestimmte Funktion nicht einzubinden?

Antwort:

Um Inlining für eine bestimmte Funktion zu verhindern, verwenden Sie die //go:noinline pragma:

//go:noinline
func isPrime(p int) bool {
    // ...
}

Für eine globale Einstellung zum Deaktivieren des gesamten Inlinings verwenden Sie das Flag -gcflags=-l:

go build -gcflags=-l primes.go

Dieses Flag entspricht dem - O0-Optimierungsstufe in GCC, die nicht optimierten Code ohne Inlining generiert.

Siehe den Blogbeitrag von Dave Cheney Weitere Informationen zu dieser Technik finden Sie unter „Mid-Stack-Inlining in Go“.

Das obige ist der detaillierte Inhalt vonWie verhindert man das Inlining von Funktionen in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn