Dalam hal desain bahasa, sebenarnya tidak ada apa pun yang membuat Go lebih lambat daripada Java pada umumnya. Bahkan, itu memberi Anda lebih banyak kontrol tata letak memori struktur data Anda, jadi untuk banyak tugas umum itu harus agak lebih cepat. Namun, kompiler Go primer saat ini, penjadwal, pengumpul sampah, perpustakaan regexp, dan banyak hal lainnya tidak terlalu dioptimalkan. Ini terus membaik, tetapi fokusnya tampaknya bermanfaat, sederhana, dan cukup cepat daripada menang di microbenchmark.
Dalam tolok ukur tertaut, Go kehilangan besar ke Jawa pada pohon biner dan tes regexp. Itu adalah tes dari sistem manajemen memori dan perpustakaan regexp masing-masing. Manajemen memori Go dapat lebih cepat dan tentu saja akan meningkat seiring waktu, dan pustaka regexp standar saat ini adalah pengganti untuk implementasi yang jauh lebih baik yang akan segera hadir. Jadi, kalah dari keduanya itu tidak mengejutkan, dan dalam waktu dekat margin harus lebih sempit.
Untuk benchmark k-nukleotida, agak sulit untuk membandingkan karena kode Java terlihat menggunakan algoritma yang berbeda. Kode Go pasti akan mendapat manfaat dari penyusun, penjadwal, dan peningkatan pengalokasi yang akan datang, bahkan seperti yang ditulis, tetapi seseorang harus menulis ulang kode Go untuk melakukan sesuatu yang lebih pintar jika kita ingin membandingkan lebih akurat.
Java menang dalam tolok ukur mandelbrot karena itu semua aritmatika dan loop floating point, dan ini adalah tempat yang bagus untuk JVM untuk menghasilkan kode mesin yang sangat baik dan mengerek hal-hal saat runtime. Go, sebagai perbandingan, memiliki kompiler yang cukup sederhana yang tidak mengangkat, membuka gulungan, atau menghasilkan kode mesin yang sangat ketat saat ini, jadi tidak mengherankan jika ia hilang. Namun, kita harus ingat bahwa pengaturan waktu Java tidak menghitung waktu mulai JVM atau berapa kali perlu dijalankan agar JVM dapat melakukan JIT dengan baik. Untuk program jangka panjang, ini tidak relevan, tetapi penting dalam beberapa kasus.
Sedangkan untuk sisa tolok ukur, Java dan Go pada dasarnya neck-in-neck, dengan Go mengambil secara signifikan lebih sedikit memori dan dalam kebanyakan kasus lebih sedikit kode. Jadi, sementara Go lebih lambat dari Jawa dalam beberapa tes tersebut, Java cukup cepat, Go melakukan perbandingan dengan cukup baik, dan Go mungkin akan menjadi lebih cepat dalam waktu dekat.
Saya menantikan ketika gccgo (kompiler Go yang menggunakan codegen gcc) sudah matang; yang seharusnya membuat Go cukup sejalan dengan C untuk banyak jenis kode, yang akan menarik.