Golang pod względem wydajności jest na pewno najlepszym rozwiązaniem :)
To znaczy? Jest jakoś kosmicznie szybszy od np Javy? Z mikrobenchmarków na stronie https://benchmarksgame-team.pages.debian.net/benchmarksgame/faster/go.html wynika iż golang jest znacznie szybszy (o jakieś 50%) tylko w przypadku programu pidigits. Testuje on szybkość JNI w Javie, a nie jest to mechanizm często wykorzystywany. Natomiast w przypadku binarytrees Java jest ponad 3x szybsza, a jest to test mocno obciążający GC (zarówno Java jak i golang są oparte o tracing GC).
Te benchmarki mają podobny sens do twierdzenia: moje koło kręci się szybciej, więc na torze pojadę szybciej (bez uwzględnienia: mocy silnika, skrzyni biegów, profilu tego toru, masy własnej, średnicy kół, dobranych opon, etc, etc). Krótko mówiąc: znaczą tyle, co nic.
Teraz z punktu widzenia golangowca: nie rozumiem interpretacji binary tree tam użytej - raczej nikt by tego tak dziwnie nie napisał w Go, waląc pamięć per node, tylko zaalokowałby od razu z góry. Generalnie konstrukty idiomatyczne w języku X, mogą być zupełnie błędne w Y. Być może zrozumiałbym zamysł autorów, że ma to być takie idiomatic (dla danego języka), jak to tylko możliwe i żadne premature optimizations nie są dozwolone - ok, to co w takim razie robi tam cgo? Takich zarzutów jest więcej.
I przykład, dlaczego to garbage: https://goo.gl/WcgpWa - koleś nie używa nic spoza stdlib, oczywiście bez cgo.
Żeby nie było: nie mówię w tym poście, że Go/Java są wolniejsze/szybsze, żeby ktoś nadgorliwy sobie nie dośpiewał.