Heim >Backend-Entwicklung >Golang >Wie verhindert man das Inlining von Funktionen 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!