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