Jadi penasaran... tadi coba pake- System.out.print("felix\n"); sama - System.out. println("felix");
yang pertama selesai sekitar 10s yang kedua sekitar 18s, ininya aja bedanya lumayan banyak. byw, kok angkanya jauh ya :O??? Itu pake hardware apa ya :O? OS-nya apa? mungkin menggunakan rasio jadi lebih jelas karena speednya relatif? Kalo ceritanya kayak diatas... keknya kudu bedah JVM... and some core classes-nya Java. Regards, Sukma 2008/6/1 Felix Halim <[EMAIL PROTECTED]>: > Contoh code C/C++ untuk melakukan puts sebanyak 1 juta kali: > > for (int i=0; i<1000000; i++) > puts("felix"); > > > Contoh code Java untuk melakukan System.out.println sebanyak 1 juta kali: > > for (int i=0; i<1000000; i++) > System.out.printlnfelix"); > > > Ternyata, menggunakan puts hanya membutuhkan waktu 0.055 detik. > Sedangkan menggunakan System.out.println membutuhkan waktu 10 detik. > > Ada yang tahu kenapa Java bisa selambat ini? > > > > Cara improve di Java adalah dengan menggunakan StringBuffer sebelum di > println: > > StringBuffer sb = new StringBuffer(); > for (int i=0; i<1000000; i++) > sb.append("felix\n"); > System.out.println(sb.toString()); > > Ternyata runtimenya turun drastis dari 10 detik menjadi 1.351 detik. > StringBuilder lebih cepat sedikit daripada StringBuffer, sekitar 0.430 > detik. > Tetapi tetap saja itu 0.430 itu 10x lebih lambat dari 0.055 detiknya > puts (oleh C/C++). > > > Dan tentu saja, menggunakan StringBuffer / StringBuilder bukan solusi yang > baik, > karena dia menggunakan MEMORY besar sebagai buffer. > > Sedangkan puts nya C/C++ tidak perlu menampung nya di buffer > (meski internalnya mungkin ada sedikit buffer, tapi itu insignificant). > > > Jadi puts nya C++ boleh dikatakan MENANG TELAK daripada solusi Java > dalam bentuk apapun. > > Apakah ada cara supaya Java tidak kalah setelak ini? > > > Felix Halim > >