Start here. This is the direct spoken answer to practice first.
Overview
Both can produce high memory and GC activity, but they leave different trends and require different changes.
Allocation pressure means the application creates objects quickly, even if most become unreachable soon. Retention means objects remain reachable and increase the live set after collection. High allocation can cause frequent collections and CPU cost without a leak, while retention can eventually exhaust the heap even at a moderate allocation rate. GC logs and live-set trends help separate them.