Simple web server benchmark - vibe.d is slower than node.js and Go?

Daniel Kozak kozzi11 at gmail.com
Mon Oct 30 17:23:02 UTC 2017


Maybe this one:

import vibe.d;
import std.regex;
import std.array : appender;

static reg = ctRegex!"^/greeting/([a-z]+)$";

void main()
{
    setupWorkerThreads(logicalProcessorCount);
    runWorkerTaskDist(&runServer);
    runApplication();
}

void runServer()
{
    auto settings = new HTTPServerSettings;
    settings.options |= HTTPServerOption.reusePort;
    settings.port = 3000;
    settings.serverString = null;
    listenHTTP(settings, &handleRequest);
}

void handleRequest(HTTPServerRequest req,
                    HTTPServerResponse res)
{
    switch(req.path)
    {
    case "/": res.writeBody("Hello World", "text/plain");
        break;
    default:
        auto m = matchFirst(req.path, reg);
        string message = "Hello, ";
        auto app = appender(message);
        app.reserve(32);
        app ~= m[1];
        res.writeBody(app.data, "text/plain");
    }
}

On Mon, Oct 30, 2017 at 5:41 PM, ade90036 via Digitalmars-d <
digitalmars-d at puremagic.com> wrote:

> On Thursday, 21 September 2017 at 13:09:33 UTC, Daniel Kozak wrote:
>
>> wrong version, this is my letest version: https://paste.ofcode.org/qWsQi
>> kdhKiAywgBpKwANFR
>>
>> On Thu, Sep 21, 2017 at 3:01 PM, Daniel Kozak <kozzi11 at gmail.com> wrote:
>>
>> my version: https://paste.ofcode.org/RLX7GM6SHh3DjBBHd7wshj
>>>
>>> On Thu, Sep 21, 2017 at 2:50 PM, Sönke Ludwig via Digitalmars-d <
>>> digitalmars-d at puremagic.com> wrote:
>>>
>>> Am 21.09.2017 um 14:41 schrieb Vadim Lopatin:
>>>>
>>>> [...]
>>>>>
>>>> Oh, sorry, I forgot the reusePort option, so that multiple sockets can
>>>> listen on the same port:
>>>>
>>>>     auto settings = new HTTPServerSettings("0.0.0.0:3000");
>>>>     settings.options |= HTTPServerOption.reusePort;
>>>>     listenHTTP(settings, &handleRequest);
>>>>
>>>
> Hi, would it be possible to re-share the example of vibe.d woth
> multithreaded support.
>
> The pastebin link has expired and the pull request doesnt have the latest
> version.
>
> Thanks
>
> Ade
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20171030/b5c4f058/attachment.html>


More information about the Digitalmars-d mailing list