Basierend auf den hier veröffentlichten Ideen habe ich diese kleine Codezeile erstellt:
sudo vmmap notifyd | grep -A3 'Summary'
Daraufhin wird der Zusammenfassungsabschnitt (3 Zeilen) der vmmap-Ausgabe angezeigt. Ich habe notifyd
in diesem Beispiel verwendet, aber Sie können das durch jede PID ersetzen, die Sie kennen.
Diese Zeile wird versuchen, alle Zusammenfassungszeilen aller laufenden Prozesse aufzulisten. Offensichtlich schlagen einige fehl, weil ihre Prozess-ID bereits weg ist (Prozess beendet), aber im Allgemeinen fand ich, dass dies eine großartige Möglichkeit ist, durch eine Liste von Speicherinformationen zu scrollen und den Top-Swapper zu finden.
ps -o pid= -xa | awk '{print $1}' | xargs -n 1 sudo vmmap | grep -A3 'Summary'
Bearbeitet: Einige anonyme Benutzer sahen, dass diese letzte Befehlszeile verbessert werden musste, da die ursprüngliche Variante offensichtlich nicht mehr funktionierte. Also vielen Dank, wer auch immer Sie sind, und es tut mir leid, dass Ihre Bearbeitung abgelehnt wurde. (Der erste Befehl lautete zuvor 'ps xa' und führte dazu, dass vmmap fehlschlug, weil die Überschrift von ps darauf geworfen wurde.)
Weitere Verbesserung: Wenn Sie den Namen des Programms sofort kennen möchten, verwenden Sie diese kleine Änderung
ps -o pid= -xa | awk '{print $1}' | xargs -n 1 sudo vmmap | egrep 'swapped_out|Path'
Mit einer kleinen Änderung am anderen Ende dieses Befehls können Sie nach bestimmten Programmnamen oder Befehlszeilenpfadkomponenten filtern. Hier sehen wir uns nur beispielhaft alle Prozesse aus 'Library / PrivateFrameworks' an.
ps -o pid,command= -xa | grep 'Library/PrivateFrameworks' | awk '{print $1}' | xargs -n 1 sudo vmmap |