# Garbage Collection In Go : Part II - GC Traces

DevFeed: [Garbage Collection In Go : Part II - GC Traces](<https://devfeed.tech/articles/garbage-collection-in-go-part-ii-gc-traces-22145.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2019/05/garbage-collection-in-go-part2-gctraces.html>)

Published: 2025-07-14T00:00:00Z

Content type: tutorial

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Traces](<https://devfeed.tech/topics/traces.md>), [Latency](<https://devfeed.tech/topics/latency.md>), [App](<https://devfeed.tech/topics/app.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>)

Tags: [ardan-labs](<https://devfeed.tech/tags/ardan-labs.md>), [article](<https://devfeed.tech/tags/article.md>), [blog](<https://devfeed.tech/tags/blog.md>), [go](<https://devfeed.tech/tags/go.md>), [go-programming](<https://devfeed.tech/tags/go-programming.md>), [golang](<https://devfeed.tech/tags/golang.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [latency](<https://devfeed.tech/tags/latency.md>), [performance](<https://devfeed.tech/tags/performance.md>), [programming](<https://devfeed.tech/tags/programming.md>), [techniques](<https://devfeed.tech/tags/techniques.md>), [traces](<https://devfeed.tech/tags/traces.md>)

## AI overview

Part two of a three-part series on Go's garbage collector explains how to generate and interpret GC traces and application profiles. It shows how to identify allocation hotspots and reduce unnecessary allocations to improve latency and throughput.

## Source excerpt

Originally published in 2019, this article is part two of a three-part series exploring Go's garbage collector. Though the Go runtime has continued to evolve, the performance principles covered here remain highly relevant today. This installment focuses on practical techniques for analyzing and reducing garbage collection (GC) overhead in real-world Go applications. It walks through how to interpret GC traces using GODEBUG=gctrace=1 and uncover allocation hotspots with pprof, with a clear message: reducing unnecessary allocations, especially in tight loops, has a direct and measurable impact on latency and throughput. Whether you're optimizing high-performance services or just becoming GC-aware, the insights here are as applicable now as ever.