Code Quality · JetBrains plugin

Go Timer Leak Companion

Free

Code Quality / Logging

Warning on a case <-time.After(...) inside a select block: Go's documented behavior: the Timer created by time.After is not recovered by the garbage collector until it fires, and a select inside any repeatedly-executed loop (the overwhelmingly common place a select appears) creates a new one on every iteration, leaking memory until each one's duration elapses. time.NewTimer(...) plus

68Downloads
0GitHub stars
2026-08-27Published
FreePricing

The gap it fixes

select { case <-time.After(5 * time.Second): ... } inside a for loop compiles fine and reads naturally — it looks like the idiomatic way to add a timeout to a select. It quietly leaks a Timer on every iteration; in a hot loop this is measured in real, documented memory growth (~200 bytes per timer as of Go 1.15, adding up fast at scale).

Facts and pricing

Category
Code Quality
Pricing
Free
Platform
IntelliJ-family
First published
2026-08-27
Marketplace ID
#33876
Repository
go-timer-leak-companion
Growth
New listing
Need a tool like this built for your codebase?Custom static-analysis rules, CI/CD integration, private plugin distribution and performance audits for IntelliJ plugins.
Work with Joel

Download and star counts as of 2026-10-18, refreshed twice daily from the JetBrains Marketplace and GitHub APIs.