# Debugging Go compiler performance in a large codebase

DevFeed: [Debugging Go compiler performance in a large codebase](<https://devfeed.tech/articles/debugging-go-compiler-performance-in-a-large-codebase-11787.md>)

Original publisher: [Read original article](<https://incident.io/blog/go-build-faster>)

Author: Isaac Seymour

Published: 2024-01-15T13:15:32Z

Content type: tutorial

Language: en

Sources: [The incident.io Blog](<https://devfeed.tech/sources/the-incident-io-blog.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [Traces](<https://devfeed.tech/topics/traces.md>), [Database](<https://devfeed.tech/topics/database.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [developer-experience](<https://devfeed.tech/tags/developer-experience.md>), [go](<https://devfeed.tech/tags/go.md>), [incident](<https://devfeed.tech/tags/incident.md>), [incident-channel](<https://devfeed.tech/tags/incident-channel.md>), [incident-management](<https://devfeed.tech/tags/incident-management.md>), [incident-response](<https://devfeed.tech/tags/incident-response.md>), [outage](<https://devfeed.tech/tags/outage.md>), [performance](<https://devfeed.tech/tags/performance.md>), [post-mortem](<https://devfeed.tech/tags/post-mortem.md>), [slack-incident](<https://devfeed.tech/tags/slack-incident.md>), [tools](<https://devfeed.tech/tags/tools.md>), [traces](<https://devfeed.tech/tags/traces.md>)

## AI overview

This article explains how a large Go monolith's compilation time can increase as its codebase grows. It describes using Go compiler profiling and trace views in Perfetto to identify bottlenecks, including a large generated database package and its dependencies, with the goal of making builds faster.

## Source excerpt

In a big Go codebase, compiling all that code can get slower over time. This is how I figured out some bottlenecks and made our builds much faster!