I would say in the interop calls, you'll need to drop COM and implement custom marshalling to avoid messy copying/conversion of structs and strings (CLR uses UTF-16 strings internally and I didn't dig into proxygen or your COM wrapper to see what it uses, but probably it is utf-8 or some multi-byte encoding, so at least some conversions will be needed)
On Wed Dec 03 2014 at 3:59:40 PM Nikita Tsukanov <kek...@gmail.com> wrote: > Hello. Have you guys heard of the proxygen ( > https://github.com/facebook/proxygen/ ) - an HTTP stack library recently > released by Facebook? It supports HTTP, SPDY, websockets and will support > HTTP/2.0 later. > > I was playing around with it and created some initial bindings that allow > to write code like this: > > https://github.com/kekekeks/prowingen/blob/master/managed/Sandbox/Program.cs > > It performs rather good, I've got 41K requests/sec on my laptop, but > obliviously needs a lot more work for production use. > > 1) Is anyone interested in this sort of thing? I was initially planning to > implement an OWIN server on top of proxygen, but now I'm not so sure, since > I'm currently using my wrapper to libevent's HTTP server ( > https://github.com/kekekeks/evhttp-sharp/ ) and quite happy with it's > performance which is almost the same (up to 38K rps on the same machine, > both benchmarks without thread pooling). The only thing it lacks is > websocket support, but I can live with that. Proxygen also can't be > compiled for Windows platform at all, so that server will be mono-only. > > 2) Does anyone have benchmark data on Kestrel? When I hammer it with ab or > wrk it just hangs and stops responding to any requests. If it can keep up > with proxygen in terms of performance, such bindings would be useless. > > 3) Is there any way to speed up interop calls? When I replace C++ handler > implementation with managed one that does essentially the same thing, the > performance drops drastically, i. e. from 130K to 40K rps). Currently I'm > using COM as a bridge ( with some basic infrastructure > native->managedimplementation - > https://github.com/kekekeks/prowingen/blob/master/native/include/com.h ). > Is there a better way? > > Regards, > Nikita > _______________________________________________ > 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