Start here. This is the direct spoken answer to practice first.
Overview
Growing memory becomes actionable when repeated navigation retains component graphs that should have been released.
I create a repeatable route-away-and-back scenario, force comparable idle points, and use heap snapshots or allocation profiling to see what remains. I inspect retaining paths for destroyed component instances, DOM nodes, subscriptions, timers, listeners, and caches. Then I fix the owner that failed to release the resource and rerun the same cycle to verify memory reaches a stable plateau.