2008/6/2 Jecki Sumargo <[EMAIL PROTECTED]>: > Pertama, karena platform java itu managed environment maka pada saat > startup banyak aspek yang disiapkan oleh JVM. Untuk detailnya sendiri > saya tidak begitu jelas, tapi kira2 di gambaran saya dia harus siapkan > table reference object, spawn thread baru untuk garbage collector > (CMMIIW). Ini pastinya menjadi overhead setiap program java.
Betul, tapi 10 detik lebih lambat itu pasti ada apa2nya. Dan terjadi pada hal yang trivial seperti System.out.println bukanlah sesuatu yang bisa di-ignore begitu saja. > Kedua, karena java bermain dengan bytecode maka perlu ada translasi > dari bytecode untuk menjadi native code. Jelas saja ini berarti ada > overhead untuk setiap eksekusi kode program. Untuk itu muncul optimasi > Just In Time compiler, di mana JVM akan menganalisa code yang sering > dieksekusi (misal: 10000 kali eksekusi) dan melakukan optimasi, di > antaranya dengan menyimpan native code dari bytecode tersebut sehingga > tidak perlu ada overhead untuk translasi lagi. Untuk hal ini ada > pilihan tuning yg bisa dilakukan. Tuning apakah yang bisa digunakan untuk mempercepat I/O seperti problem diatas? > IMO dalam hal ini java tidak bisa dibandingkan dengan C/C++. Target > pengguna platformnya sendiri jelas berbeda. Java ditujukan untuk > memudahkan pembuatan program yang agar programmer misalnya tidak perlu > repot dengan memory management. Betul, tetapi sejauh apakah Java bisa melambat karenanya? Dan teknik apa sajakah yang bisa kita lakukan untuk mempercepatnya? Itu yang sekarang lagi saya bahas :) > Sedangkan C/C++ lebih untuk problem > yang low level atau yang butuh keuntungan (kecepatan) dari native > binary misalnya driver, DLL library, game programming, real time > programming. Meskipun bisa saja kita melihat Java dipakai untuk game > programming dan program enterprise dibuat dengan C/C++. +1 Felix Halim