<div dir="ltr">my results:<div><br></div><div><span style="font-size:12.8px">OS       lang:config   req/s    comments</span><br style="font-size:12.8px"><span style="font-size:12.8px">=======  ==========    =======  ==========</span><br style="font-size:12.8px"><span style="font-size:12.8px">Linux    go                24K</span><br style="font-size:12.8px"><span style="font-size:12.8px">Linux    D:libevent    27K        4 threads</span><br style="font-size:12.8px"><span style="font-size:12.8px">Linux    D:libasync   26.5K     4 threads</span></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Sep 21, 2017 at 2:41 PM, Vadim Lopatin via Digitalmars-d <span dir="ltr"><<a href="mailto:digitalmars-d@puremagic.com" target="_blank">digitalmars-d@puremagic.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On Thursday, 21 September 2017 at 10:21:17 UTC, Sönke Ludwig wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
     shared static this()<br>
     {<br>
         (...)<br>
     }<br>
</blockquote>
<br>
BTW, I'd recommend using<br>
<br>
    void main()<br>
    {<br>
        (...)<br>
        runApplication();<br>
    }<br>
<br>
instead and dropping the VibeDefaultMain version in the package recipe. The old approach is planned to be faded out slowly, because it requires some special DUB support that would be nice to see gone at some point.<br>
</blockquote>
<br></div></div>
Thank you!<br>
Trying to use multithreaded mode.<br>
<br>
Under windows, best Vibe.d results are equal to results of Go server.<br>
Under linux, Vibe.d is still slower even if there are 4 threads listening.<br>
<br>
Results:<br>
<br>
OS       lang:config   req/s    comments<br>
=======  ==========    =======  ==========<br>
Linux    go            53K<br>
Linux    D:default     48K      1 thread<br>
Linux    D:libevent    48K      1 thread<br>
Linux    D:libasync    46.5K    4 threads<br>
<br>
Windows  go            12K<br>
Windows  D:default     12K      4 threads<br>
Windows  D:libevent    12K      4 threads<br>
Windows  D:libasync    7K       4 threads<br>
<br>
Under Linux in default and libevent configurations, I see error messages from 3 of 4 threads - looks like only one thread can process connections.<br>
<br>
Failed to listen on <a href="http://0.0.0.0:3000" rel="noreferrer" target="_blank">0.0.0.0:3000</a><br>
Task terminated with uncaught exception: Failed to listen for incoming HTTP connections on any of the supplied interfaces.<br>
<br>
<br>
</blockquote></div><br></div>