Rumah >pembangunan bahagian belakang >Golang >Mengapa Fungsi CGo Saya Lebih Lambat Daripada Fungsi Pure Go Saya?
Pertimbangan Prestasi CGo
Anda telah menjalankan perbandingan masa pelaksanaan untuk CGo dan fungsi Go tulen, dan fungsi cgo mempamerkan prestasi yang lebih perlahan . Walaupun kod ujian anda kelihatan sah, terdapat faktor asas yang boleh menyumbang kepada perbezaan ini.
Fungsi CGO dikenakan penalti prestasi disebabkan oleh overhed yang terlibat dalam menggunakan kod C/C. Meminimumkan kekerapan panggilan CGo disyorkan untuk mengoptimumkan prestasi. Walau bagaimanapun, untuk contoh anda, mungkin lebih cekap untuk mengalihkan gelung ke dalam kod C daripada memanggil fungsi CGo berulang kali.
Beberapa aspek persediaan dan pelaksanaan Goroutine dalam Go boleh mencabar jangkaan kod C:
Untuk memastikan kestabilan, CGo memilih untuk melaksanakan kod C dalam urutan berasingan dengan susunan tradisional.
Tidak seperti bahasa seperti Python, yang mengoptimumkan kod dengan C adalah perkara biasa, Go menawarkan jurang prestasi yang lebih sempit antara C dan Go yang setara kod.
Oleh itu, pada umumnya adalah dinasihatkan untuk menggunakan CGo terutamanya untuk antara muka dengan perpustakaan luaran, yang berpotensi menggunakan fungsi pembalut C kecil untuk panggilan dikurangkan yang dibuat daripada kod Go.
Atas ialah kandungan terperinci Mengapa Fungsi CGo Saya Lebih Lambat Daripada Fungsi Pure Go Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!