views:

694

answers:

2

I require socket-like local IPC. I used named pipes and overlapped IO on windows and I want to rewrite the application to boost::ASIO so that it can use UNIX domain sockets as well.

I've recently reviewed parts of the libevent library and I know it only supports socket() and select() for windows in the 1.4 version. As overlapped IO is very efficient leaving it out is obviously an unacceptable trait which is being adressed in version 2 (which is in alpha). Another example of sub-optimal implementation is the use of red-black trees vs. prio-queues for the timeout logic which was adressed somewhere along the line.

Does anyone have any opinions on the performance characteristics of boost vs libevent/libev. Does it have any glaring undesireable traits on certain platforms ? My aim for this question is that I do not want to pidgeon-hole the ASIO library unless I absolutely must. I want to know if boost::asio uses the most optimal OS primitives in the most optimal way.

+4  A: 

I do performance tests of asio and my own impl on file reading (my blogpost entry) - in two words - asio shown good results.

W55tKQbuRu28Q4xv
thank you >random text< :D
Hassan Syed
+1  A: 

Also check this post about a locking problem in boost::asio, which may affect you.

frunsi
thank you frunsi, that particular post was very helpfull.
Hassan Syed