vibe.d benchmarks

Atila Neves via Digitalmars-d digitalmars-d at puremagic.com
Tue Jan 5 02:11:36 PST 2016


On Thursday, 31 December 2015 at 08:23:26 UTC, Laeeth Isharc 
wrote:
> On Wednesday, 30 December 2015 at 20:32:08 UTC, yawniek wrote:
>>>>> Sönke is already on it.
>>>>>
>>>>> http://forum.rejectedsoftware.com/groups/rejectedsoftware.vibed/post/29110
>>
>> i guess its not enough, there are still things that make 
>> vibe.d slow.
>>
>> i quickly tried
>> https://github.com/nanoant/WebFrameworkBenchmark.git
>> which is really a very simple benchmark but it shows about the 
>> general overhead.
>>
>> single core results against go-fasthttp with GOMAXPROCS=1 and 
>> vibe distribution disabled on a c4.2xlarge ec2 instance 
>> (archlinux):
>>
>> vibe.d 0.7.23 with ldc
>> Requests/sec:  52102.06
>>
>> vibe.d 0.7.26 with dmd
>> Requests/sec:  44438.47
>>
>> vibe.d 0.7.26 with ldc
>> Requests/sec:  53996.62
>>
>> go-fasthttp:
>> Requests/sec: 152573.32
>>
>> go:
>> Requests/sec:  62310.04
>>
>> its sad.
>>
>> i am aware that go-fasthttp is a very simplistic, stripped 
>> down webserver and vibe is almost a full blown framework. 
>> still it should be D and vibe.d's USP to be faster than the 
>> fastest in the world and not limping around at the end of the 
>> charts.
>
> Isn't there a decent chance the bottleneck is vibe.d's JSON 
> implementation rather than the framework as such ?  We know 
> from Atila's MQTT project that vibe.D can be significantly 
> faster than Go, and we also know that its JSON implementation 
> isn't that fast.  Replacing with FastJSON might be interesting.
>  Sadly I don't have time to do that myself.

vibe.d _was_ faster than Go. I redid the measurements recently 
once I wrote an MQTT broker in Rust, and it was losing to 
boost::asio, Rust's mio, Go, and Java. I told Soenke about it.

I know it's vibe.d and not my code because after I got the 
disappointing results I wrote bindings from both boost::asio and 
mio to my D code and the winner of the benchmarks shifted to the 
D/mio combo (previously it was Rust - I figured the library was 
the cause and not the language and I was right).

I'd've put up new benchmarks already, I'm only waiting so I can 
show vibe.d in a good light.

Atila




More information about the Digitalmars-d mailing list