Establish the baseline
Working set includes memory that can be paged out; private bytes is what the process owns. A leak shows in private bytes, while a cache shows in working set.
Get-Process app | Select-Object Name,Id,@{n='WS_MB';e={[math]::Round($_.WorkingSet64/1MB)}},@{n='Private_MB';e={[math]::Round($_.PrivateMemorySize64/1MB)}},HandleCount,Threads.Count
Get-CimInstance Win32_PerfFormattedData_PerfProc_Process | Where-Object Name -like 'app*' | Select-Object Name,PrivateBytes,WorkingSet,HandleCount