Apabila menyusun program "Hello World" remeh dalam Go, anda mungkin terkejut apabila mendapati boleh laksananya jauh lebih besar daripada yang dijangkakan . Isu ini telah ditangani dalam Soalan Lazim Go: "Mengapa program remeh saya sedemikian binari yang besar?"
Penjelasan terletak pada proses pemautan Go. Go menggunakan pemautan statik, bermakna masa jalan Go dan semua maklumat jenis yang diperlukan untuk pemeriksaan jenis dinamik, refleksi dan pengendalian panik disertakan dalam boleh laku akhir. Pendekatan ini menyediakan sokongan masa jalan yang mantap, tetapi ia datang dengan mengorbankan saiz fail.
Membandingkan Pergi ke C, program C "Hello World" yang dipautkan secara statik biasanya sekitar 750 kB, termasuk pelaksanaan printf. Sebaliknya, Go bersamaan menggunakan fmt.Printf mengambil masa 1.9 MB kerana sokongan masa jalan dan maklumat jenisnya yang luas.
Walau bagaimanapun, saiznya kekal konsisten apabila anda menambah lebih banyak panggilan fmt.Println() pada program Go anda . Ini kerana perpustakaan dan masa jalan yang diperlukan sudah disertakan dalam boleh laku. Penambahan teks baharu hanya menambah jumlah data yang minimum.
Memahami gelagat ini adalah penting untuk mengoptimumkan boleh laku Go. Walaupun sokongan masa jalan Go menyediakan banyak kemudahan, ia datang pada kos saiz fail. Dengan menyesuaikan kod anda untuk menggunakan ciri yang diperlukan sahaja, anda boleh mengurangkan kelebihan laksana anda.
Atas ialah kandungan terperinci Mengapakah Go Executable Jauh Lebih Besar Daripada Jangkaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!