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

Wie verhindert man das Inlining von Funktionen in Go?

Barbara Streisand
Freigeben: 2024-12-01 16:50:11
Original
449 Leute haben es durchsucht

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 {
    // ...
}
Nach dem Login kopieren

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

go build -gcflags=-l primes.go
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage