{"id":361,"date":"2008-05-19T22:24:35","date_gmt":"2008-05-19T20:24:35","guid":{"rendered":"http:\/\/daniel.haxx.se\/blog\/?p=361"},"modified":"2008-05-20T00:21:50","modified_gmt":"2008-05-19T22:21:50","slug":"libev-vs-libevent","status":"publish","type":"post","link":"https:\/\/daniel.haxx.se\/blog\/2008\/05\/19\/libev-vs-libevent\/","title":{"rendered":"libev vs libevent"},"content":{"rendered":"<p>Only a few years ago (autumn 2005) I was awarded a grant by <a href=\"http:\/\/www.iis.se\/\">iis.se<\/a> (&#8220;The Internet Infrastructure Foundation&#8221; in Sweden) and in my subsequent work on the code for that project, I used <a href=\"http:\/\/www.monkey.org\/~provos\/libevent\/\">libevent<\/a> and implemented a <a href=\"http:\/\/curl.haxx.se\/libcurl\/hiper\/\">high performance API<\/a> for <a href=\"http:\/\/curl.haxx.se\/libcurl\/\">libcurl<\/a> when dealing with very many simultaneous transfers.<\/p>\n<p>Recently when I&#8217;ve read about people using the <a href=\"http:\/\/curl.haxx.se\/libcurl\/c\/curl_multi_socket.html\">curl_multi_socket()<\/a> API, I&#8217;ve seen mentions of the <a href=\"http:\/\/software.schmorp.de\/pkg\/libev.html\">libev<\/a> library and today when I&#8217;ve finally read up on the subject I fell over their very interesting <a href=\"http:\/\/libev.schmorp.de\/bench.html\">performance comparison<\/a> document comparing libev with libevent, including charts and all. Perhaps not a surprise when coming from one of the main the libev authors, but it seems libev does perform from some to significantly better than libevent depending on the circumstances.<\/p>\n<p>When I get some time over I think I&#8217;ll try to port some of the example source codes over to use libev and see how it plays for me.<\/p>\n<p>Update: <em>I like how libev.com is used by Long Island Beverage Systems Inc&#8230; \ud83d\ude42<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Only a few years ago (autumn 2005) I was awarded a grant by iis.se (&#8220;The Internet Infrastructure Foundation&#8221; in Sweden) and in my subsequent work on the code for that project, I used libevent and implemented a high performance API for libcurl when dealing with very many simultaneous transfers. Recently when I&#8217;ve read about people &hellip; <a href=\"https:\/\/daniel.haxx.se\/blog\/2008\/05\/19\/libev-vs-libevent\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">libev vs libevent<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,6],"tags":[33,195,194],"class_list":["post-361","post","type-post","status-publish","format-standard","hentry","category-curl","category-floss","tag-curl-and-libcurl","tag-libev","tag-libevent"],"_links":{"self":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/361","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/comments?post=361"}],"version-history":[{"count":0,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/361\/revisions"}],"wp:attachment":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/media?parent=361"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/categories?post=361"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/tags?post=361"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}