Oh, my GoD! Goroutines on D

mw mingwu at gmail.com
Mon Jun 15 22:04:49 UTC 2020


On Monday, 15 June 2020 at 09:09:23 UTC, Jin wrote:
> I have added a new release and a PR to your repo.

on my same machine, go.d:

received 100000000 messages in 2906 msec sum=4999999950000000 
speed=34411 msg/msec

so, it's ~2.7x faster than Java:

https://github.com/mingwugmail/liblfdsd/tree/master/comparison

And your https://github.com/nin-jin/go.d on my machine

go.d is 2~4 times slower than Go.

9.7638ms (Go) v.s [19 ms ~ 40 ms] (go.d)

Go's speed is consistent in multiple runs, for go.d it can be 2x 
difference, maybe because of the scheduler is unstable?


> But I don't think it's a good idea to replace jin.go.queue by 
> lock_free.rwqueue because:

I just want to do a comparison.

> You are using atomicLoad!(MemoryOrder.acq) at there: 
> https://github.com/MartinNowak/lock-free/blob/master/src/lock_free/rwqueue.d#L41
> Is this really required? CPU can't reorder dependent statements.

It's not mine, but @MartinNowak's.  The implementation is based on

https://www.codeproject.com/Articles/43510/Lock-Free-Single-Producer-Single-Consumer-Circular




More information about the Digitalmars-d mailing list