FYI, untuk nge run code barusan, harus set -Xmx256m otw bakal kena heap space exception.
Trus, tentang kenapa Double.valueOf bisa lebih lambat itu mungkin karena Double.valueOf lebih flexible: Double.valueOf bisa terima input dalam berbagai macam format: System.out.println(Double.valueOf("1e-2")); System.out.println(Double.valueOf("1.282e-2")); System.out.println(Double.valueOf("38282.11717e-7")); System.out.println(Double.valueOf("38282.11717e7")); System.out.println(Double.valueOf("238476239487623324234234.1231231231243324234234E-19")); Gak heran jalannya lebih lambat, pasti banyak pengecekan di dalamnya. Felix Halim 2008/6/4 Felix Halim <[EMAIL PROTECTED]>: > Untuk yang lain yang ingin melakukan micro-benchmark, kalau bisa > test-casesnya di-random. > Jangan hanya menggunakan single value seperti: "-12.3456" > Hasilnya akan sangat bias dan tidak akurat. > > Untuk T.Budi, saya bikinin testcases random nya. > Kamu bisa benchmark menggunakan itu, hasilnya harusnya lebih applicable. > > Dan, berdasarkan pengalaman benchmark sebelumnya (puts vs. println), > Jumlah testcasesnya harus cukup besar sehingga runtimenya adalah hitungan > DETIK. > Kalau masih ukuran milliseconds masih blum bisa dianggap akurat! (masih > bias dengan overhead aneh2). > > Saat ini hasilnya seperti ini: > > Double.parseDouble = 1.120404 secs > Double.valueOf = 1.146029 secs > stringToDouble = 0.502698 secs > stringToDoubleFH = 0.467788 secs > > Double.valueOf itu consistently lebih lambat daripada toDouble bikinan > sendiri... > Entah kenapa itu... ada yang tahu? > > Kalau menurut saya, mungkin saja ada pengecekan lain yang membuat > Double.valueOf lambat. > Entah pengecekan lain itu critical atau tidak (demi precision)? > > Felix Halim