cURL / Mailing Lists / curl-library / Single Mail

curl-library

Re: libuv example

From: Clemens Gruber <clemens.gruber_at_pqgruber.com>
Date: Sat, 13 Apr 2013 13:46:04 +0200

"Gisle Vanem" <gvanem_at_broadpark.no> wrote:
> "Clemens Gruber" <clemens.gruber_at_pqgruber.com> wrote:
>> I am sure many of you are aware that libev and libevent only support
>> select()/poll() on Windows, but not the nice and much faster IO
>> Completion Ports API.
> libevent as used in the Tor-project and others has used IOCP for
> some time now. Since ver 2.0? Ref:
> http://sourceforge.net/projects/levent/
> http://sourceforge.net/scm/?type=git&group_id=50884&source=navbar
> Would be nice to see how libuv compares to libevent.
> --gv

Hi,

sorry to reply that late. The libevent NEWS for 2.0 state:

"3.3. Windows: better support for everything
  Bufferevents on Windows can use a new mechanism (off-by-default; see
below)
  to send their data via Windows overlapped IO and get their notifications
  via the IOCP API. This should be much faster than using event-based
  notification.

  (...)

  Unfortunately, the main Windows backend is still select()-based: from
  testing the IOCP backends on the mailing list, it seems that there isn't
  actually a way to tell for certain whether a socket is writable with IOCP.
  Libevent 2.1 may add a multithreaded WaitForMultipleEvents-based
  backend for better performance with many inactive sockets and better
  integration with Windows events."

But unfortunately in the 2.1 NEWS, I did not find anything related to
the backend. Maybe they delayed it.

Therefore I assume, libuv still has better support on Windows. Please
correct me if I am wrong.

I would really like to see a benchmark between those two.
If I have time, I'll try to set one up.

Best regards,
Clemens
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette: http://curl.haxx.se/mail/etiquette.html
Received on 2013-04-13