Rumah > pembangunan bahagian belakang > Golang > Mengapa Melumpuhkan CGO Melambatkan Kompilasi Walaupun Tanpa Menggunakan C Bindings?

Mengapa Melumpuhkan CGO Melambatkan Kompilasi Walaupun Tanpa Menggunakan C Bindings?

Susan Sarandon
Lepaskan: 2024-11-09 00:52:02
asal
947 orang telah melayarinya

Why Does Disabling CGO Slow Down Go Compilation Even Without Using C Bindings?

Mengapa Menyusun dengan CGO_ENABLED=0 Ditanggung Kelembapan

Walaupun tidak menggunakan pengikatan C, menyusun dengan CGO_ENABLED=0 nyata memperlahankan penyusunan. Untuk memahami puncanya, kita mesti menyelidiki mekanisme yang sedang dimainkan.

Pakej perpustakaan standard dibina menggunakan bendera kompilasi yang telah ditetapkan. Apabila CGO_ENABLED ditetapkan kepada 0, bendera binaan diubah suai, menjadikan pakej pra-bina tidak serasi. Akibatnya, majoriti pustaka standard mesti dibina semula.

Walaupun "go build -i" boleh memasang pakej yang dibina dengan bendera baharu, ia tidak menyelesaikan sepenuhnya isu tersebut. Memasang pakej yang dibina dengan CGO_ENABLED=0 mempercepatkan binaan masa hadapan dengan bendera yang sama, tetapi menghalang binaan tanpanya.

Kaedah pemasangan lalai untuk pakej pra-bina adalah tidak cekap, dengan semua pakej disimpan dalam direktori yang sama dengan yang serupa nama tanpa mengira konfigurasi binaan mereka. Untuk mendayakan binaan pantas dengan bendera yang berbeza-beza, "go build -i" hendaklah digabungkan dengan bendera "-installsuffix" atau "-pkgdir". Dengan memperuntukkan direktori unik untuk setiap mod kompilasi, binaan berasingan dengan bendera berbeza boleh ditampung dengan lancar.

Atas ialah kandungan terperinci Mengapa Melumpuhkan CGO Melambatkan Kompilasi Walaupun Tanpa Menggunakan C Bindings?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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