Мне интересно изучить сборку сборки x86 стандартного компилятора Go, чтобы проверить, действительно ли мой код преобразован в разумно эффективный код сборки; надеюсь, путем профилирования и изучения сборки, я мог бы получить представление о том, где/как я должен переписать код Go для максимальной производительности. Но когда я исследую код с помощью флага -S, Go выплевывает беспорядок! Я бы хотел две вещи:
-
Есть ли способ заставить компилятор Go скомпилировать вывод сборки в файл, а не просто распечатать его на терминале?
-
Кроме того, есть ли способ заставить компилятор Go разделить код сборки на отдельные функции с метками? Я знаю, что некоторые функции могут быть встроены и, следовательно, не отображаются в коде сборки. То, что я вижу, - это просто однородный блок сборки, который почти невозможно понять.