post on using go 1.5 and GC latency

rsw0x via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sun Aug 23 04:26:56 PDT 2015


On Sunday, 23 August 2015 at 11:06:20 UTC, Russel Winder wrote:
> On Sat, 2015-08-22 at 09:27 +0000, rsw0x via 
> Digitalmars-d-learn wrote:
>> […]
>> 
>> The performance decrease has been there since 1.4 and there is 
>> no way to remove it - write barriers are the cost you pay for 
>> concurrent collection. Go was already much slower than other 
>> compiled languages, now it probably struggles to keep up with 
>> mono.
>
> I know Walter hates it when people mention the word but: 
> benchmarks.
>
> As soon as someone say things like "it probably struggles to 
> keep up with mono" further discussion of the topic is probably 
> not worth entertaining without getting some agreed codes and 
> running them all on the same machine.
>
> I agree the standard Go compiler generates not well optimized 
> code, but
> gccgo generally does, and generally performs at C-level speeds. 
> Of
> course Java often performs far better than that, and often 
> fails to.
> You have to be careful with benchmarking and performance things
> generally.

https://groups.google.com/forum/#!msg/golang-dev/pIuOcqAlvKU/C0wooVzXLZwJ
25-50% performance decrease across the board in 1.4 with the 
addition of write barriers, to an already slow language.

random benchmarks of Go performing 3x(+) slower than C/C++/D, 
some of these predate Go 1.4.
https://github.com/kostya/benchmarks
https://benchmarksgame.alioth.debian.org/u64/benchmark.php?test=all&lang=go&lang2=gcc&data=u64
https://togototo.wordpress.com/2013/07/23/benchmarking-level-generation-go-rust-haskell-and-d/ (gcc-go performed the _worst_)
https://togototo.wordpress.com/2013/08/23/benchmarks-round-two-parallel-go-rust-d-scala-and-nimrod/ (and again)
https://github.com/logicchains/LPATHBench/blob/master/writeup.md 
(once again, Go is nowhere near C/C++/D/Rust. Where is it? 
Hanging out with C#/Mono.)

Go is slow. These aren't cherrypicked, just random samples from a 
quick Googling.
Where is Go performing "C-level speeds" at? D claims this, and D 
shows it does. Go falls into the "fast enough" category, because 
it is _not_ a general purpose programming language. So unless 
multiple randomly sampled benchmarks are all wrong, I'm going to 
stick with 'Go is slow.'


More information about the Digitalmars-d-learn mailing list