There are some existing wrappers: https://github.com/kersny/libuv-csharp - Dead, no commits for 3 years https://github.com/txdv/LibuvSharp - uses Task ( https://github.com/txdv/LibuvSharp/blob/master/Examples/TcpAsync.cs ), so it should have same problems with thread pool
2014-05-15 21:41 GMT+04:00 Greg Young <gregoryyou...@gmail.com>: > That would make sense as the models are different. Also that libuv wrapper > from looking looks fairly promising. > > > On Thu, May 15, 2014 at 8:38 PM, Nikita Tsukanov <kek...@gmail.com> wrote: > >> I think we should have something like Mono.Sockets with abstraction of >> event loop and I/O code based on libuv or whatever, and build classes like >> HttpListener on top of it. >> >> >> 2014-05-15 21:30 GMT+04:00 Nikita Tsukanov <kek...@gmail.com>: >> >> I suspect that having libuv behind socket code won't help much, since >>> most of socket performance problems are related to the fact that >>> BeginSend/Recieve, event loop and AsyncCallback run in different threads. >>> Because of that we have overhead even with simple >>> void ReadNext() >>> { >>> _socket.BeginRecieve(buf, blablabla, res=> >>> { >>> _socket.EndRecieve(res); >>> ReadNext(); >>> }); >>> } >>> On windows that works fine because of IOCP behind that abstraction that >>> is designed to be used with thread pool. *nix platforms doesn't have >>> anything like IOCP, only epoll/kqueue, so for actual performance >>> improvement one have to use single-threaded approach (with round-robin >>> connection dispatch between workers), when all I/O operations and event >>> loop run in single thread. >>> >>> >>> >>> >>> >>> 2014-05-15 20:55 GMT+04:00 Miguel de Icaza <mig...@xamarin.com>: >>> >>> Hello, >>>> >>>> Well, i want to see a prototype, and then decide. >>>> >>>> So this needs to be done with some kind of peer framework where this is >>>> done. >>>> >>>> >>>> On Thu, May 15, 2014 at 9:29 AM, Greg Young <gregoryyou...@gmail.com>wrote: >>>> >>>>> Yes I would say moving both to libuv would be a good move :) >>>>> >>>>> >>>>> On Thu, May 15, 2014 at 4:22 PM, Roope Kangas <ro...@grandcrugames.com >>>>> > wrote: >>>>> >>>>>> Hi, >>>>>> >>>>>> On a tangent... >>>>>> >>>>>> It would be really nice if something like libuv would the thing >>>>>> behind Socket code. >>>>>> >>>>>> Could that be something to investigate? >>>>>> >>>>>> Mono could basically piggyback on nodejs development. >>>>>> >>>>>> -- >>>>>> Roope Kangas >>>>>> >>>>>> On 15.5.2014, at 15.00, Greg Young <gregoryyou...@gmail.com> wrote: >>>>>> >>>>>> So the one issue I have seen with the libevent implementation is that >>>>>> it seems to perform very poorly in windows (+-5k hello worlds/second >>>>>> where >>>>>> as its closer to 100k/second in linux). From researching libevent they >>>>>> supposedly now use IOCP in windows and should be better but I have not >>>>>> been >>>>>> able to make this happen. It may also be worth looking at libuv which is >>>>>> pretty close to a drop in replacement for libevent as it seems to get >>>>>> much >>>>>> better performance in windows and similar performance in linux. @Nikita I >>>>>> will hopefully have some time next week and likely will send some more >>>>>> pull >>>>>> requests in relation to the memory allocation patterns. >>>>>> >>>>>> >>>>>> On Thu, May 15, 2014 at 6:56 AM, Miguel de Icaza >>>>>> <mig...@xamarin.com>wrote: >>>>>> >>>>>>> Hello Nikita! >>>>>>> >>>>>>> Your approach looks fabulous! I look forward to trying it out! >>>>>>> >>>>>>> Miguel >>>>>>> >>>>>>> >>>>>>> On Wed, May 14, 2014 at 11:40 AM, Nikita Tsukanov >>>>>>> <kek...@gmail.com>wrote: >>>>>>> >>>>>>>> I'll try to implement OWIN host on top of my libevent built-in http >>>>>>>> server ( https://github.com/kekekeks/evhttp-sharp ) since for now >>>>>>>> it's the fastest thing for handling HTTP-requests on Mono I know (now >>>>>>>> it >>>>>>>> has host implementation for NancyFx which we are using in production >>>>>>>> for >>>>>>>> half of a year). >>>>>>>> Although both evhttp-sharp and FastCGI servers like HyperFastCGI >>>>>>>> and Fos, are incapable of serving websockets (one because of underlying >>>>>>>> implementation, another because of limitations of FastCGI protocol), >>>>>>>> so it >>>>>>>> would be great to wrap something like >>>>>>>> https://github.com/kekekeks/evhttp-sharp which has websocket >>>>>>>> support and positioned as evhttp drop-in replacement. >>>>>>>> >>>>>>>> Regards, >>>>>>>> Nikita >>>>>>>> >>>>>>>> >>>>>>>> 2014-05-14 19:29 GMT+04:00 Marcelo Zabani <mzab...@gmail.com>: >>>>>>>> >>>>>>>> Wow! This is such great news!! >>>>>>>>> >>>>>>>>> As for running Owin applications with Unix HTTP servers, I've >>>>>>>>> developed Fos <http://github.com/mzabani/Fos> on a very >>>>>>>>> permissive license and a focus on good documentation and running with >>>>>>>>> Mono >>>>>>>>> on *nix. I would very much love getting contributions on this, >>>>>>>>> because my >>>>>>>>> spare time is running lower these days. >>>>>>>>> >>>>>>>>> Hope it helps, >>>>>>>>> Marcelo. >>>>>>>>> >>>>>>>>> >>>>>>>>> On Wed, May 14, 2014 at 12:44 AM, Miguel de Icaza < >>>>>>>>> mig...@xamarin.com> wrote: >>>>>>>>> >>>>>>>>>> Hello guys! >>>>>>>>>> >>>>>>>>>> Microsoft has open sourced ASP.NET vNext: >>>>>>>>>> >>>>>>>>>> http://github.com/aspnet/home >>>>>>>>>> >>>>>>>>>> This is an entire new web stack that only needs the core of Mono >>>>>>>>>> (does not even use System.Web.dll!). >>>>>>>>>> >>>>>>>>>> So these are of course great news, because (a) The core Mono has >>>>>>>>>> been in active development, and (b) that means that Mono's on the >>>>>>>>>> server >>>>>>>>>> can be used without all those pesky limitations that have been >>>>>>>>>> plaguing us >>>>>>>>>> for years. >>>>>>>>>> >>>>>>>>>> So we ran into a couple of limitations in Mono: some classes that >>>>>>>>>> they need are not implemented (I filed a bug, and a couple of >>>>>>>>>> Xamarin folks >>>>>>>>>> decided to take on that on their copious spare time) and we have a >>>>>>>>>> couple >>>>>>>>>> of bugs on FileSystemWatcher on OSX. >>>>>>>>>> >>>>>>>>>> But this is a great time to: >>>>>>>>>> >>>>>>>>>> - Get involved with the github.com/aspnet project and submit >>>>>>>>>> contributions that will make the software run on Unix. >>>>>>>>>> >>>>>>>>>> - Look into technologies like Owin and Katana (sp?) and help >>>>>>>>>> us have a story that plugs into Unix HTTP servers (the equivalent >>>>>>>>>> of our >>>>>>>>>> bridge between Apache and mono: mod_mono, or our Fast CGI bridge >>>>>>>>>> to mono). >>>>>>>>>> >>>>>>>>>> - Take Mono's new profiling tools and performance counters >>>>>>>>>> for a spin and help us fine tune the runtime to run .NET code >>>>>>>>>> faster on >>>>>>>>>> Unix than you can on Windows. While this is a tall order, my >>>>>>>>>> friend David >>>>>>>>>> Miller would expect nothing less from us. >>>>>>>>>> >>>>>>>>>> Hugs and love, >>>>>>>>>> Miguel >>>>>>>>>> >>>>>>>>>> _______________________________________________ >>>>>>>>>> Mono-devel-list mailing list >>>>>>>>>> Mono-devel-list@lists.ximian.com >>>>>>>>>> http://lists.ximian.com/mailman/listinfo/mono-devel-list >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> Mono-devel-list mailing list >>>>>>>>> Mono-devel-list@lists.ximian.com >>>>>>>>> http://lists.ximian.com/mailman/listinfo/mono-devel-list >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> Mono-devel-list mailing list >>>>>>>> Mono-devel-list@lists.ximian.com >>>>>>>> http://lists.ximian.com/mailman/listinfo/mono-devel-list >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Mono-devel-list mailing list >>>>>>> Mono-devel-list@lists.ximian.com >>>>>>> http://lists.ximian.com/mailman/listinfo/mono-devel-list >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Studying for the Turing test >>>>>> >>>>>> _______________________________________________ >>>>>> Mono-devel-list mailing list >>>>>> Mono-devel-list@lists.ximian.com >>>>>> http://lists.ximian.com/mailman/listinfo/mono-devel-list >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> Mono-devel-list mailing list >>>>>> Mono-devel-list@lists.ximian.com >>>>>> http://lists.ximian.com/mailman/listinfo/mono-devel-list >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Studying for the Turing test >>>>> >>>>> _______________________________________________ >>>>> Mono-devel-list mailing list >>>>> Mono-devel-list@lists.ximian.com >>>>> http://lists.ximian.com/mailman/listinfo/mono-devel-list >>>>> >>>>> >>>> >>>> _______________________________________________ >>>> Mono-devel-list mailing list >>>> Mono-devel-list@lists.ximian.com >>>> http://lists.ximian.com/mailman/listinfo/mono-devel-list >>>> >>>> >>> >> >> _______________________________________________ >> Mono-devel-list mailing list >> Mono-devel-list@lists.ximian.com >> http://lists.ximian.com/mailman/listinfo/mono-devel-list >> >> > > > -- > Studying for the Turing test >
_______________________________________________ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list