[Mono-dev] Fundamental performance problems with Mono

James Mansion james at mansionfamily.plus.com
Sun Jan 10 05:19:10 EST 2010

damageboy wrote:
> By this, I mean that a fundamental difference you'll find in the Linux world
> from the Windows world is that there is no async socket API for Linux. This
> is a "limitation" (if you want to call it like that) of the Linux kernel,
> and in no way related to mono.
That's a little unfair - things are just done differently. You can 
implement async IO quite easily on
a POSIX kernel albeit the kernel does not have so much context 
information and can't do some
optimisations. Personally I'd look at embedding something on top of 
libev. If you want an example
of implementing aio on select/poll etc then look at boost::asio (tho, 
even as a C++ coder, the
implementation made me want to lie down and rest for a while).

(And POSIX does have aio on some platforms: and some of those even 
support reasonable
parallelism with sockets. But not all. You'd probably be better using 
libev or libevent and letting
it hide the select/poll/kqueue/event port differences)

More information about the Mono-devel-list mailing list