Is it just me or is debugging memory leaks in Node/V8 way worse than it used to be?
We recently upgraded our backend (late) from Node 20 to Node 24. About a week later, alarms went off when our app stopped responding; memory usage graphs looked like an obvious leak but it hadn't OOMed and restarted tasks despite `--max-old-space-size` limits.
I started trying to compare heap snapshots taken at different times but it seems like a mess now. Even if I run a simple `setInterval(() => console.log('test'))` program with Node 24.14.1 and periodically take heap snapshots, they show a slight increase over time in `(compiled code)` instances and system code related to timers.
I can't even tell if these increases are permanent or not. The few timer objects that increased between snapshots were only retained by `feedback_cell`s and other internal things that I read aren't truly forcing them to be retained...V8 just doesn't guarantee those will get garbage collected immediately or on a `global.gc()`.
And all of this irrelevant noise from `feedback_cell`s and other internals seems rampant in the heap snapshots now, making it more time consuming to locate actual retainers from my own code.
I don't remember it always being this bad?
I've successfully debugged several other memory leaks in older versions of node, including really heady ones involving `Promise.race()` and async generators, but now I'm feeling powerless and shafted by recent changes to V8.