Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menghalang Fungsi Inlining dalam Go?

Bagaimana untuk Menghalang Fungsi Inlining dalam Go?

Barbara Streisand
Lepaskan: 2024-12-01 16:50:11
asal
499 orang telah melayarinya

How to Prevent Function Inlining in Go?

Menghalang Fungsi Inlining in Go

In Go, pengkompil boleh mengoptimumkan prestasi kod secara automatik dengan menyertakan fungsi. Walau bagaimanapun, mungkin terdapat keadaan di mana anda ingin melumpuhkan gelagat ini.

Soalan:

Bagaimanakah anda boleh mengarahkan pengkompil Go untuk tidak menyelaraskan fungsi tertentu?

Jawapan:

Untuk mengelakkan sebaris untuk fungsi tertentu, gunakan //go:noinline pragma:

//go:noinline
func isPrime(p int) bool {
    // ...
}
Salin selepas log masuk

Untuk tetapan global melumpuhkan semua inlining, gunakan bendera -gcflags=-l:

go build -gcflags=-l primes.go
Salin selepas log masuk

Bendera ini bersamaan dengan tahap pengoptimuman -O0 dalam GCC, yang menjana kod tidak dioptimumkan tanpa sebarang sebaris.

Rujuk Dave Catatan blog Cheney "Sebaris pertengahan tindanan dalam Go" untuk mendapatkan butiran lanjut tentang teknik ini.

Atas ialah kandungan terperinci Bagaimana untuk Menghalang Fungsi Inlining dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan