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