Rumah >pembangunan bahagian belakang >Golang >Mengapa kod Cgo saya lebih perlahan daripada kod Go yang dijangkakan?
Mengapa cgo sangat perlahan?
Kod ujian anda membandingkan masa pelaksanaan fungsi C dan Go dijalankan 100 juta kali setiap satu. Fungsi C mengambil masa lebih lama daripada fungsi Golang dan anda bimbang ada sesuatu yang tidak kena dengan kod ujian anda.
Overhed tinggi untuk memanggil kod C/C melalui CGo menjadikan panggilan CGo diminimumkan dengan sebaiknya. Dalam contoh yang diberikan, mungkin lebih cekap untuk membuat gelung C dan bukannya memanggil fungsi CGo berulang kali dalam gelung.
Persediaan masa jalan Go untuk urutannya boleh memecahkan jangkaan kod C dalam beberapa cara:
Oleh itu, CGo mengambil peti keselamatan pendekatan menjalankan kod C dalam urutan berasingan dengan tindanan tradisional.
Tidak seperti bahasa seperti Python yang menulis semula hotspot kod dalam C adalah perkara biasa untuk mempercepatkan atur cara, jurang prestasi Go antara kod C dan Go jauh lebih kecil. Pertimbangkan untuk menempah CGo untuk antara muka dengan perpustakaan sedia ada, mungkin dengan fungsi pembalut C kecil untuk mengurangkan bilangan panggilan yang diperlukan daripada Go.
Atas ialah kandungan terperinci Mengapa kod Cgo saya lebih perlahan daripada kod Go yang dijangkakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!