Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Pergi Lebih Perlahan Daripada Java Walaupun Menghasilkan Kod Asli?

Mengapa Pergi Lebih Perlahan Daripada Java Walaupun Menghasilkan Kod Asli?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-14 20:09:02164semak imbas

Why is Go Slower Than Java Despite Producing Native Code?

Go Performance vs. Java: Meneroka Percanggahan

Permainan Penanda Aras Bahasa Komputer pada tahun 2010 mendedahkan bahawa Go adalah lebih perlahan daripada kedua-dua C dan Jawa. Bagaimanakah ini boleh dilakukan memandangkan Go menghasilkan kod asli?

Sesetengahnya telah menolak kelambatan intrinsik bahasa Go, mengaitkan isu prestasi kepada penyusun yang tidak matang. Walau bagaimanapun, penyiasatan yang lebih mendalam mendedahkan bahawa penyusun sendiri tidak dapat mengambil kira sepenuhnya jurang prestasi.

Penyusun 6g dan 8g yang digunakan dalam penanda aras tidak begitu mengoptimumkan, membawa kepada kod yang kurang kelajuan. Sebaliknya, gccgo memanfaatkan pas pengoptimuman lanjutan GCC, yang berpotensi menawarkan perbandingan yang lebih adil dengan C. Walau bagaimanapun, ia masih tidak lengkap dari segi ciri.

Akhirnya, angka penanda aras sangat bergantung pada kualiti pelaksanaan. Walaupun ia tidak menggambarkan bahasa itu sendiri secara langsung, ia menunjukkan bahawa pelaksanaan Go mungkin memperuntukkan sumber masa jalan untuk menyokong ciri yang tidak penting untuk penanda aras. Mengoptimumkan penyusun secara teorinya boleh mengalih keluar overhed yang tidak perlu sedemikian, tetapi pendekatan ini boleh menjadi tidak praktikal dalam senario dunia sebenar.

Sebagai contoh, dalam kes Java, kod yang disusun JIT boleh menghapuskan laluan kod yang tidak diperlukan dengan berkesan. Walau bagaimanapun, pencapaian ini bukan tanpa cabarannya, kerana mengekalkan laluan yang dioptimumkan ini boleh menjadi rumit.

Ujian empirikal telah menunjukkan bahawa gccgo menghasilkan kod yang setanding dengan C yang dioptimumkan dengan -O2. Ini menunjukkan bahawa Go sebenarnya tidak perlahan, sebaliknya pengkompil semasa tidak dapat mengoptimumkan kodnya sepenuhnya. Apabila ekosistem Go semakin matang dan penyusun berkembang, jurang prestasi dijangka akan mengecil, menjadikan Go pilihan yang lebih menarik untuk aplikasi yang menuntut kelajuan dan kecekapan.

Atas ialah kandungan terperinci Mengapa Pergi Lebih Perlahan Daripada Java Walaupun Menghasilkan Kod Asli?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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