4 ms·
The quad core results indicate the exact opposite in terms of performance with the JVM clearly ahead: http://benchmarksgame.alioth.debian.org/u32q/benchmark.php
by trailfox 14y ago
The quad core results indicate the exact opposite in terms of performance with the JVM clearly ahead:
http://benchmarksgame.alioth.debian.org/u32q/benchmark.php?test=all&lang=go&lang2=java http://benchmarksgame.alioth.debian.org/u32q/benchmark.php?t...
Go uses less memory than Java 7, but then again so does Java 1.1
- carbocation 14y agoReading some of the go programs, they do not appear to be configured to take advantage of more than one core.
- igouy 14y agoPlease -- no generalities -- provide a URL so we can all see what you are looking at, and reach our own understanding.
- carbocation 14y agoOK, here's the first program on the list provided by trailfox: http://benchmarksgame.alioth.debian.org/u32q/program.php?test=fastaredux&lang=go&id=2 http://benchmarksgame.alioth.debian.org/u32q/program.php?tes... Note that: 1) It only ever uses one core, because 2) It isn't configured with GOMAXPROCS, which therefore defaults to 1. So, sure, they have an N-core machine, but they're only allowing go to access 1 core.
- igouy 14y ago>>but they're only allowing<< Notice on the list provided by `trailfox` the "≈ CPU Load" column -- when the programs are written to use 4 cores "they're" allowing Go to access 4 cores.
- carbocation 14y agoNo. Go programs currently require a one-line instruction to tell them how many cores to use. Without that one line, they will only use one core. The go program in question was written without that instruction; therefore, it's only allowed to use one core.
- igouy 14y ago>only allowed to use one core< Only "allowed" by who? If you mean that "the Go program in question" is by-design a sequential program then -- yes of course it is! The contributed Go programs that were written for multi-core use more than one core -- http://benchmarksgame.alioth.debian.org/u32q/program.php?test=fannkuchredux&lang=go&id=1 http://benchmarksgame.alioth.debian.org/u32q/program.php?tes...
- gillianseed 14y agoGo does slightly better in the 64-bit test (which I think is more apt to link to rather than the 32-bit which you keep using) http://benchmarksgame.alioth.debian.org/u64q/benchmark.php?test=all&lang=go&lang2=java http://benchmarksgame.alioth.debian.org/u64q/benchmark.php?t... That said, Java still beats Go quite readily in this benchmark spread, particularly in regex and binary-trees where Go does extremely poor. It should be noted that lots of languages implement their regex libraries in C for speed, while Go's implementation is written in Go. Still, I think it should do better than this. That Java beats Go overall is not particularly surprising, Java is very mature and it's jit-compiler has very advanced optimizations, Perhaps by Go 2.0 we'll see where Go 'lands' in terms of performance, there's obviously alot more to be had.
- voidlogic 14y agoThe u64q link you posted is still using Go 1.0.3, you can see some 1.1 beta 1 results here: http://benchmarksgame.alioth.debian.org/u64/benchmark.php?test=all&lang=go&lang2=java http://benchmarksgame.alioth.debian.org/u64/benchmark.php?te...
- trailfox 14y agoThanks, the 32 bit results on quad core are Go 1.1 beta: http://benchmarksgame.alioth.debian.org/u32q/benchmark.php?test=all&lang=go&lang2=java http://benchmarksgame.alioth.debian.org/u32q/benchmark.php?t...
- voidlogic 14y agoGo does has known issues and does poorly on 32-bit x86, but that is OK, no one uses it :)-
- gillianseed 14y agoThanks! Are there any 1.1 beta 1 results for Go with quad core rather than one core?