yupe setuju. we are in the same side. maksud gue, ga selalu faster,
tetapi java nio lebih scalable (baca tulisan yg sebelumnya).
kalau cuma mengutip blog paul tyma, nio is faster is a myth, coba baca dulu
blog-nya.
dia nguji mailinator. dia cuma nguji di linux kernel terbaru doang.
tebakan gue, lebih parah lagi, koneksi yang dibuat adalah tikam-lari,
open-connect-request-response-close.

coba uji di freebsd, yang proses  tcp/ip-nya lebih baik dari kernel linux
(oops, another holy war).
coba diuji di solaris dengan banyak core.
coba diuji dengan 5,000 push ajax client.

nio akan meningkat kerjanya untuk aplikasi yang conversation-nya panjang,
one thread per socket akan ga scalable karena jumlah limit thread yang
praktikal bisa dibuat. dengan banyaknya aplikasi ajax sekarang ini, event
satu web page akan membuka banyak sekali koneksi, membuat pendekatan socket
per thread akan cepat habis.
dengan banyak berkembangnya ajax push teknologi (seperti bayeux protocol),
koneksi http perlu dipanteng terus untuk setiap client push ajax. ini akan
membuat pendekatan socket per thread benar2 ga scalable. push ajax adalah
salah satu pendorong grizzly diciptakan.

2009/9/18 Jaimy Azle <jaz...@gmail.com>

>
>
> On Thursday, September 17, 2009, 3:13:48 PM, Daniel Baktiar wrote:
>
> > who says, nio is faster. nio is more scalable <> faster.
>
> Bergantung dari bagaimana environment dan teknologi yang digunakan
> saat melakukan measurement-nya.
>
> Kalau dibandingkannya 1 lawan 1 jelas tidak akan terlihat beda antara
> blocking dan non-blocking socket karena measurement ini akan mentok
> pada tingkat kecepatan CPU, network, dan hardware server, namun kalau
> perbandingannya 100 lawan 100 maka baru akan terlihat nio lebih cepat
> ketimbang io konvensional.
>
> async io memanfaatkan event yang ditrigger oleh OS pada level lowest
> IO driver yang memungkinkan aplikasi bisa memanfaatkan semua processor
> secara penuh (SMP). kalau pake C, di linux hal ini dibantu dengan
> memanfaatkan libevent, sementara di Windows memanfaatkan IOCP.
>
> Permasalahannya, untuk bisa memanfaatkan nio secara maksimal dalam
> aplikasi, apalagi aplikasi yang sudah terlanjur jadi, tidak gampang.
> Servlet API yang umum digunakan dalam multitier di java dibuat dengan
> mengasumsikan metodologi socket yang digunakan adalah blocking socket,
> ini bisa jadi salah satu bottleneck yang membuat kinerja async io
> tidak bisa maksimal.
>
> http://blogs.webtide.com/gregw/2004/02/09/1076359560000.html
>
> kalau pengalaman pribadi, middleware yang saya buat dengan
> memanfaatkan async io ini mendapati peningkatan antara 10-20% lebih
> baik ketimbang dengan memanfaatkan blocking socket biasa.
>
> --
> Salam,
>
> -Jaimy Azle
>
> "Great new ideas usually come from very small teams...
> don't give up so easily."
> -- John Kaster
>
>  
>



-- 
Daniel Baktiar
Senior JEE* Monkey -- willing to work hard in the Java beans brewery for a
big bunch of bananas (http://dbaktiar.wordpress.com)

Kirim email ke