Felix Halim wrote:
> Setelah saya naikkan jumlah iterasinya jadi 10 juta kali, Java dan
> C/C++ sudah tidak berbeda!
> 
> C/C++ puts : 2.518726 secs (system time)
> Java BufferedWriter : 2.473039172 secs (system time)
> 
> Code untuk benchmarknya saya attach.
> Silahkan dicoba sendiri.
> 
> Conclusionnya:
> 
>         Pakailah BufferedWriter untuk tulis ke STDOUT jika ingin print
> dalam jumlah banyak.
> 
> Setidaknya sekarang kita sudah boleh tenang memakai BufferedWriter.
> Kecepatannya menyaingi puts nya C/C++ kok.
> 
> Thread ini sudah boleh ditutup :D
> Thanks buat semua yang udah kasih masukkan.
> 

Kenapa bisa begini? Karena dengan iterasi 10 juta kali maka 2
overhead utama performance Java menjadi tidak berarti.
Apa 2 overhead utama performance Java?

1. Waktu start-up. Java waktu start-up pertamanya lama.
Dan ini masih terus diusahakan untuk di optimasi oleh
engineer Sun.

2. Java menggunakan JIT (Just In Time) Compiler (HotSpot).
HotSpot ini butuh waktu tertentu untuk melakukan optimasi
code Java yang dijalankan. Salah satu optimasi HotSpot
adalah konversi dari byte code menjadi native code.

Kalau mau dua overhead utama ini tidak ada maka kita
harus menggunakan compiler Java yang melakukan
optimisasi di depan dan mengkonversi byte code jadi
native code di depan. Compiler Java yang bisa melakukan
hal ini adalah GCJ dan Jet Excelsior.

Kirim email ke