Dalam beberapa tahun kebelakangan ini, bahasa Go telah menjadi pilihan semakin ramai pembangun. Walau bagaimanapun, berbanding dengan bahasa pengaturcaraan lain, kelajuan kompilasi bahasa Go tidak cukup pantas. Ramai pembangun akan menghadapi masalah ini apabila menyusun atur cara Go: Mengapakah program Go saya mengambil masa yang lebih lama untuk disusun? Artikel ini akan meneroka isu ini dari beberapa aspek.
Seni bina pengkompil bahasa Go menggunakan reka bentuk tiga peringkat, iaitu bahagian hadapan, lapisan tengah dan bahagian belakang. Bahagian hadapan bertanggungjawab untuk menterjemah kod sumber ke dalam kod perantaraan bahasa Go, lapisan tengah menukar kod perantaraan kepada kod bebas mesin, dan akhirnya bahagian belakang menterjemah kod bebas mesin kepada kod mesin boleh laku.
Oleh kerana pengkompil bahasa Go menggunakan reka bentuk tiga peringkat, kelajuan kompilasi mungkin lebih perlahan daripada bahasa pengaturcaraan lain. Walau bagaimanapun, ini juga merupakan langkah yang perlu semasa menyusun kod dalam bahasa Go.
Bahasa Go ialah bahasa pengaturcaraan yang memaksa modulariti, dan modulariti selalunya bermakna lebih banyak kebergantungan. Apabila menyusun atur cara Go, pengkompil perlu terlebih dahulu mencari pakej pergantungan yang diperlukan dan menyusunnya. Jika terdapat terlalu banyak pakej bergantung, kelajuan penyusunan akan menjadi lebih perlahan.
Kualiti kod juga mempunyai impak yang besar pada kelajuan penyusunan bahasa Go. Jika saiz kod besar, strukturnya mengelirukan, dan terlalu banyak pakej pergantungan luaran digunakan, pengkompil mungkin memerlukan lebih banyak masa untuk menganalisis dan memproses kod dan boleh menyebabkan lebih banyak ralat kompilasi.
Pengkompil bahasa Go akan melakukan beberapa operasi pengoptimuman semasa proses penyusunan, seperti penyebarisan fungsi, penyingkiran kod mati, dsb. Operasi pengoptimuman ini menjadikan program yang disusun lebih cekap, tetapi juga meningkatkan masa penyusunan.
Apabila menyusun atur cara Go, tetapan beberapa pilihan kompilasi juga akan mempengaruhi kelajuan kompilasi. Sebagai contoh, menggunakan pilihan -c membolehkan pengkompil melangkau fasa pemautan, yang boleh mengurangkan masa penyusunan.
Secara amnya, kelajuan kompilasi bahasa Go mungkin lebih perlahan berbanding bahasa pengaturcaraan lain, tetapi ini tidak bermakna kelajuan kompilasi bahasa Go adalah perlahan. Sebaliknya, melalui beberapa helah dan kaedah, masa penyusunan boleh dikurangkan dengan banyak. Pada masa yang sama, semasa menulis program Go, anda juga harus memberi perhatian kepada kualiti dan modularisasi kod untuk mengurangkan bilangan pakej bergantung, memendekkan masa penyusunan dan meningkatkan kecekapan penyusunan.
Atas ialah kandungan terperinci Mengapakah program Go saya mengambil masa yang lebih lama untuk disusun?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!