<div dir="ltr">Just to add some info on <b>Fos</b>, I've just tried the Hello World json serialization benchmark (taken from <a href="http://www.techempower.com/benchmarks/#section=data-r8&hw=i7&test=json&s=2&p=13ydj4-0">http://www.techempower.com/benchmarks/#section=data-r8&hw=i7&test=json&s=2&p=13ydj4-0</a>) and in my machine I'm getting a little more than 3000 requests per second using ServiceStack's Json Serializer. I'm not using any OWIN compatible stacks such as Nancy, I'm just writing the response through a simple middleware.<div>
The good news is that after profiling it is easy to see some methods with rather dumb implementations in Fos and FastCgiNet (the kind of code you put a <i>TODO</i> close to) that are taking up a lot of unnecessary time. I'll see if I can rewrite those methods over the next week to make this faster.</div>
<div><br></div><div>Has anyone else benchmarked Fos and/or FastCgiNet?</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Apr 12, 2014 at 4:04 PM, Nikita Tsukanov <span dir="ltr"><<a href="mailto:keks9n@gmail.com" target="_blank">keks9n@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>Oh, sorry for misinformation. FrameworkBenchmarks already has 
experimental and buggy implementation of the same thing (see multiworker
 branch). So the good news that it can be now considered stable.<br><br><br>Profiling with some optimizations gave me about 20% performance boost however.<br><br>Before:<br>Running 25s test @ <a href="http://127.0.0.1:8083/" target="_blank">http://127.0.0.1:8083/</a><br>

  10 threads and 600 connections<br>  Thread Stats   Avg      Stdev     Max   +/- Stdev<br>    Latency     6.38ms    5.51ms  59.43ms   79.82%<br>    Req/Sec    10.80k     3.90k   29.20k    66.14%<br>  2469415 requests in 24.99s, 329.70MB read<br>

Requests/sec:  98803.25<br>Transfer/sec:     13.19MB<br><br><br>After:<br>Running 25s test @ <a href="http://127.0.0.1:8083/" target="_blank">http://127.0.0.1:8083/</a><br>  10 threads and 600 connections<br>  Thread Stats   Avg      Stdev     Max   +/- Stdev<br>

    Latency     8.06ms   12.65ms  81.59ms   90.45%<br>    Req/Sec    12.36k     4.94k   26.73k    71.89%<br>  2983443 requests in 24.99s, 398.33MB read<br>Requests/sec: 119391.93<br>Transfer/sec:     15.94MB<br><br></div>

Regards,<br></div>Nikita<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-04-12 21:11 GMT+04:00 Nikita Tsukanov <span dir="ltr"><<a href="mailto:keks9n@gmail.com" target="_blank">keks9n@gmail.com</a>></span>:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Oh, sorry for misinformation. FrameworkBenchmarks already has experimental and buggy implementation of the same thing (see multiworker branch). So the good news that it can be now considered stable.<br>

<br>Regards,<br>
Nikita Tsukanov<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-04-12 20:53 GMT+04:00 Greg Young <span dir="ltr"><<a href="mailto:gregoryyoung1@gmail.com" target="_blank">gregoryyoung1@gmail.com</a>></span>:<div>
<div class="h5"><div>
<div><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Nice I will pull and check it out.<div><br></div><div>Good work.</div><span><font color="#888888"><div>


<br></div><div>Greg</div></font></span></div><div class="gmail_extra"><div><div><br><br><div class="gmail_quote">On Sat, Apr 12, 2014 at 7:50 PM, Nikita Tsukanov <span dir="ltr"><<a href="mailto:keks9n@gmail.com" target="_blank">keks9n@gmail.com</a>></span> wrote:<br>



<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Hello there. Today I spent some time messing up with libevent and managed to implement multiworker mode (multiple threads accepting connections from the same socket) in my evhttp-sharp wrapper. That gave me 2.5 times faster results in benchmark (from 32K to 79K rps). Now I'll send pull request to FrameworkBenchmarks guys.<br>




<br></div>Regards,<br>Nikita Tsukanov<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-04-09 23:51 GMT+04:00 xplicit <span dir="ltr"><<a href="mailto:svg@ngs.ru" target="_blank">svg@ngs.ru</a>></span>:<div>



<div><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I like this. If it provides the ability to easy change one listener to other<br>
and also ability to change HTTP servers it'll be awesome. By the way it also<br>
should provide the ability to run current <a href="http://ASP.NET" target="_blank">ASP.NET</a> server otherwise people<br>
could not migrate their web application to Linux platform. <a href="http://ASP.NET" target="_blank">ASP.NET</a> requires<br>
some additional things to startup, like create AppDomain with appropriate<br>
security evidence for every web application, route requests to correct<br>
AppDomain according to virtual path and so on. These produce additional<br>
level of complexity, which possible does not required by raw HTTP servers,<br>
but I think it can be simplified.<br>
<br>
If you guys are intrested in this, I can share some ideas and tell about<br>
issues and constraints I met when I tried to integrate <a href="http://ASP.NET" target="_blank">ASP.NET</a> with nginx.<br>
<br>
<br>
<br>
--<br>
View this message in context: <a href="http://mono.1490590.n4.nabble.com/FastCGI-Performance-tp4662454p4662500.html" target="_blank">http://mono.1490590.n4.nabble.com/FastCGI-Performance-tp4662454p4662500.html</a><br>
<div><div>Sent from the Mono - Dev mailing list archive at Nabble.com.<br>
_______________________________________________<br>
Mono-devel-list mailing list<br>
<a href="mailto:Mono-devel-list@lists.ximian.com" target="_blank">Mono-devel-list@lists.ximian.com</a><br>
<a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br>
</div></div></blockquote></div></div></div><br></div>
<br>_______________________________________________<br>
Mono-devel-list mailing list<br>
<a href="mailto:Mono-devel-list@lists.ximian.com" target="_blank">Mono-devel-list@lists.ximian.com</a><br>
<a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div></div></div><div>-- <br>Le doute n'est pas une condition agréable, mais la certitude est absurde.
</div></div>
</blockquote></div></div></div></div></div><br></div>
</blockquote></div><br></div>
<br>_______________________________________________<br>
Mono-devel-list mailing list<br>
<a href="mailto:Mono-devel-list@lists.ximian.com">Mono-devel-list@lists.ximian.com</a><br>
<a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br>
<br></blockquote></div><br></div>