Вы на самом деле задаете несколько разных вопросов.Во-первых, математическое представление Go будет таким же быстрым, как и все остальное.Любой язык, который компилируется до нативного кода (который, возможно, включает в себя даже языки JIT, такие как .NET), будет работать очень хорошо в сырой математике - настолько быстро, насколько машина может работать.Простые математические операции очень легко компилировать в форму с нулевыми издержками.Это область, в которой скомпилированные (включая JIT) языки имеют преимущество перед интерпретируемыми.
Другой вопрос, который вы задали, касался сбора мусора.Это, в некоторой степени, немного побочный вопрос, если вы говорите о тяжелой математике.Нельзя сказать, что GC не влияет на производительность - на самом деле это влияет совсем немного.Но общее решение для узких петель состоит в том, чтобы избегать или минимизировать GC развертки.Это часто довольно просто, если вы делаете жесткий цикл - вы просто повторно используете свои старые переменные вместо того, чтобы постоянно выделять и отбрасывать их.Это может ускорить ваш код на несколько порядков.
Что касается самих реализаций GC - Go и .NET используют сборку мусора по меткам и зачисткам.Microsoft уделяет много внимания и инженерных разработок своему движку GC, и я должен думать, что это неплохо, учитывая все обстоятельства.GC-движок Go находится в стадии разработки, и хотя он не чувствует медленнее, чем архитектура .NET, ребята из Golang настаивают на том, что ему нужно немного поработать.Тот факт, что спецификация Go запрещает деструкторам, значительно ускоряет процесс, поэтому, возможно, это и не кажется таким медленным.
Наконец, в своем собственном анекдотическом опыте я обнаружил, что Go - это очень быстро .Я написал очень простые и легкие программы, которые в моих собственных тестах выдерживали сравнение с высокооптимизированным кодом C из некоторых давних и уважаемых проектов с открытым исходным кодом, которые гордятся производительностью.
Суть в том, что не весь код Go будет эффективным, точно так же, как не весь C-код эффективен.Вы должны построить его правильно, что часто означает, что вы делаете вещи не так, как вы привыкли в других языках. Профилирующее сообщение в блоге , упомянутое здесь несколько раз, является хорошим примером этого.