На основі ідей, розміщених тут, я створив цей невеликий рядок коду:
sudo vmmap notifyd | grep -A3 'Summary'
який відображає розділ «Підсумок» (3 рядки) виводу vmmap. Я використовував notifyd
у цьому прикладі, але ви можете замінити його будь-яким відомим вами PID.
Цей рядок спробує перерахувати всі підсумкові лінії всіх запущених процесів. Очевидно, деякі вийдуть з ладу, тому що їх ідентифікатор процесу вже зник (процес закінчився), але в цілому я знайшов, що це прекрасний спосіб прокрутити список інформації про пам'ять і виявити верхній перемикач.
ps -o pid= -xa | awk '{print $1}' | xargs -n 1 sudo vmmap | grep -A3 'Summary'
Відредаговано: Деякі анонімні користувачі побачили, що цей останній командний рядок потребує вдосконалення, оскільки, очевидно, оригінальний варіант більше не працював. Тож дуже дякую, хто б ви не були, і мені шкода, що вашу редакцію було відхилено. (Перша команда раніше прочитала "ps xa" і призвела до відмови vmmap через те, що на неї закидається заголовок ps)
Подальше вдосконалення: Якщо ви хочете дізнатись назву програми одразу, скористайтеся цією невеликою зміною
ps -o pid= -xa | awk '{print $1}' | xargs -n 1 sudo vmmap | egrep 'swapped_out|Path'
Невелика поправка на інший кінець цієї команди дозволяє вам фільтрувати певні назви програм або компоненти командного рядка. Тут ми розглянемо, наприклад, всі процеси з "Бібліотеки / PrivateFrameworks".
ps -o pid,command= -xa | grep 'Library/PrivateFrameworks' | awk '{print $1}' | xargs -n 1 sudo vmmap |