2008/6/4 Felix Halim <[EMAIL PROTECTED]>:
> 2008/6/4 Samuel Franklyn <[EMAIL PROTECTED]>:
>
>> Masukan gua sama dengan masukan Frans. Tapi mungkin akan gua
>> perjelas sedikit. Micro benchmark itu tidak berguna.
>> Benchmark yang kompleks macam TPC-C saja cuma sedikit berguna.
>
> Kenapa tidak berguna? Kan bisa dijadikan panduan dalam coding?
>
> Kalau tahu System.out.println lambatnya bisa sampai 10x lipat daripada
> BufferedWriter dalam hal menulis ke STDOUT tentu akan berguna donk?
>

Ya mungkin saja micro-benchmark ada gunanya.
Tapi harus diperhatikan, *biasanya* kode yang sudah dioptimasi akan
less-readable daripada kode yang normal.
Ini merupakan maintenance-cost, lebih sulit membacanya, dan mengubahnya.

Pertanyaannya sekarang, apakah cost yang harus dibayar gara2 optimasi
tersebut cukup sepadan dengan benefitnya ??
Jangan-jangan System.out.println yang itu ternyata cuma menyita 1%
dari total waktu eksekusi.

Kalau pendekatan yang biasa saya lakukan, saya akan cari bottleneck
yang paling besar.

Misalnya, berdasarkan profiling, ketahuan bahwa untuk merender satu
page, proporsinya sebagai berikut:
5% framework overhead
40% business logic
40% akses database
5% logging
10% page rendering

Maka target pertama saya adalah kode akses database dan business logic.
Bila saya bisa mengoptimasi setengahnya saja dari kedua hal tersebut,
aplikasi saya akan 40% lebih cepat.
Hampir 2x lebih cepat.

Bila saya optimasi System.out.println yang ada di logging,
walaupun berhasil meningkatkan kinerjanya 1000 kali lipat,
aplikasi tidak akan menjadi 40% lebih cepat.

Intinya, choose your battle carefully

-- 
Endy Muhardin
http://endy.artivisi.com
Y! : endymuhardin
-- life learn contribute --

Kirim email ke