Комментарии 6
При этом PGO влияет только на две оптимизации: встраивание и девиртуализацию.
То есть разбивки функций на горячие/холодные куски в Go пока нет?
Как раз такая разбивка и существует - получается после профилирования. Только эта информация используется как раз лишь двумя оптимизациями. В этом плане pgo и go в целом есть куда расти
Именно в компиляторе нет. Как паттерн написания кода есть, можно даже в стандартной библиотеке увидеть такое. Например sync.Mutex.Lock() так написан
Похоже, но не совсем то - идея не в том, чтобы заинлайнить горячие куски, а чтобы сложить их рядом при линковке. Инлайнинг для frontend-bound кода (в смысле TMA) может и ухудшить производительность.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Как ускорить программу, не переписав ни строчки кода: PGO для Go-разработчиков