In your example, `pulseaudio` is using 32MB not 3GB.  The `RES` column is physical memory.  The `VIRT` column shows all the virtual memory used by the process.  According to `man top`, that includes all code, data, and shared libraries plus pages that have been swapped out and pages that have been mapped but not used.