Felix Halim wrote: > 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?
Nah itu dia. Tiap aplikasi kan beda. Bisa saja aplikasinya nggak berurusan dengan I/O sama sekali. Satu micro benchmark itu kan cuma mengukur satu aspek yang amat sangat kecil dan itu belum tentu berguna untuk aplikasi kita sendiri. >> Lalu benchmark macam apa yang berguna? Benchmark aplikasi >> anda sendiri. Kalau hari ini aplikasi anda kecepatannya 1 >> lalu anda bisa optimasi sehingga kecepatannya 2 nah itu sudah >> cukup hebat. Aplikasi dunia nyata itu kompleks dan susah >> sekali di optimasi. Effort berbulan-bulan kadang cuma >> menaikkan performance 10-20%. > > Benchmark project sendiri sudah merupakan keharusan kalau ingin > mengoptimize project sendiri. > > Tapi "cara" meng-optimisasinya adalah dengan mengetahui banyak > micro-benchmark yang dilakukan orang2. > Lalu dicobakan ke project sendiri, lalu benchmark project sendiri > dengan yang sebelumnya. > > Apakah ada cara lain selain melihat micro-benchmark yang lebih effektif? > > Saya tetap berpendapat micro-benchmark sangat penting, meskipun > hasilnya tidak terlihat langsung di project besar. > Saya tidak setuju. Dari pada belajar banyak sekali micro benchmark orang lain lebih bermanfaat kita memanfaatkan profiler untuk melihat bottleneck dari aplikasi. Lalu bottleneck tersebut diusahakan untuk di distribusi loadnya atau paling tidak di percepat. Kalau sudah tahu bottleneck nya maka menciptakan beberapa micro benchmark sendiri memang bermanfaat. Ini saya rasa lebih bermanfaat dari pada tahu banyak micro benchmark. Micro benchmark bikinan sendiri yang spesifik aplikasi sendiri lebih bermanfaat dari pada banyak micro benchmark orang lain yang nggak relevan. Tapi ini juga masih optimasi level 1. Optimasi level 2 adalah perubahan arsitektur, user interface dan cara pemakaian aplikasi sehingga user merasakan aplikasi cepat. Performance aplikasi sebagian adalah masalah teknis tapi sebagian lagi adalah masalah persepsi user pada saat memakai aplikasi. Dan ini sudah isu psikologis. He he he. Sebagai contoh progress bar itu sebenarnya memperlambat aplikasi. Tapi aplikasi yang nggak ada progress bar itu sering disebut lebih lambat oleh user dibandingkan dengan aplikasi yang ada progress barnya. Yah user kan bukan developer yang terbiasa berpatokan pada millisecond. :-)