vibe.d benchmarks

Atila Neves via Digitalmars-d digitalmars-d at puremagic.com
Wed Jan 6 00:24:10 PST 2016


On Tuesday, 5 January 2016 at 14:15:18 UTC, rsw0x wrote:
> On Tuesday, 5 January 2016 at 13:09:55 UTC, Etienne Cimon wrote:
>> On Tuesday, 5 January 2016 at 10:11:36 UTC, Atila Neves wrote:
>>> On Thursday, 31 December 2015 at 08:23:26 UTC, Laeeth Isharc 
>>> wrote:
>>>>  [...]
>>>
>>> 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
>>
>> The Rust mio library doesn't seem to be doing any black magic. 
>> I wonder how libasync could be optimized to match it.
>
> Have you used perf(or similar) to attempt to find bottlenecks 
> yet?

Extensively. I optimised my D code as much as I know how to. And 
that's the same code that gets driven by vibe.d, boost::asio and 
mio.

Nothing stands out anymore in perf. The only main difference I 
can see is that the vibe.d version has far more cache misses. I 
used perf to try and figure out where those came from and 
included them in the email I sent to Soenke.

> Perf is a bit hard to understand if you've never used it 
> before, but it's also very powerful.

Oh, I know. :)

Atila


More information about the Digitalmars-d mailing list