Quick answer: Your game's memory usage keeps growing because it's leaking, allocating memory that's never freed, so it accumulates over time. The usual culprits are objects created but never destroyed, references held that should be dropped, caches or lists that only ever grow, and event handlers never unsubscribed. Left unchecked, it leads to memory pressure (slowdown) and eventually an out-of-memory crash.

Memory usage that climbs steadily and never comes back down is the definition of a memory leak. It's sneaky because the game runs fine at first and only degrades or crashes after extended play, as the leaked memory accumulates. Finding what's growing and never being released is the whole diagnosis.

Why Memory Grows

A memory leak happens when memory is allocated but never freed, so it piles up. Each leaked allocation may be small, but they accumulate, growing the footprint without bound until the game slows (memory pressure) or crashes (out of memory). The classic game pattern is leaking on repeated operations, a little leaks every time you load a level, spawn an enemy, or open a menu, so it grows over a session.

Common specific causes: objects created but never destroyed, references held to data that should be released (so it can't be freed), caches/lists that only ever grow, and event handlers/subscriptions never removed (keeping their targets alive). The unifying theme: something keeps memory alive that should have been let go.

How to Diagnose and Fix It

Use a memory profiler: run the game and watch whether memory (or object/resource counts) climbs steadily rather than staying flat, a rising line is the leak. Trigger suspected actions repeatedly (load levels, spawn things, open menus) and see what grows and never comes back down, that's what's leaking. In the field, out-of-memory crashes correlated with long sessions confirm a leak is reaching players; Bugnet captures memory context with crashes so this pattern surfaces.

Fix by releasing what accumulates: destroy objects when done (or pool and reuse them), drop references you no longer need, cap or evict growing caches, and unsubscribe event handlers. Verify with the profiler that memory stays flat over a long session. See our guide on fixing a memory leak for the steps.

Growing memory is a leak, memory allocated and never freed. Profile to see what climbs over a session (objects, references, caches, handlers), release it, and verify memory stays flat.