Широко признано, что одним из главных факторов, сдерживающих производительность Go на уровне C ++, является сборщик мусора. Я хотел бы получить некоторую интуицию, чтобы помочь рассуждать о накладных расходах GC Go в различных обстоятельствах. Например, есть ли нетривиальные издержки GC, если программа никогда не касается кучи, или просто выделяет большой блок при настройке для использования в качестве пула объектов с самоуправлением? Вызывается ли GC каждые x секунд или при каждом распределении?
В качестве связанного вопроса: верно ли мое первоначальное предположение, что GC Go является основным препятствием для производительности уровня C ++, или есть некоторые вещи, которые Go просто делает медленнее?