Dựa trên những ý tưởng được đăng ở đây, tôi đã tạo ra dòng mã nhỏ này:
sudo vmmap notifyd | grep -A3 'Summary'
trong đó hiển thị phần Tóm tắt (3 dòng) của đầu ra vmmap. Tôi đã sử dụng notifyd
trong ví dụ này, nhưng bạn có thể thay thế nó bằng bất kỳ PID nào bạn biết.
Dòng này sẽ cố gắng liệt kê tất cả các dòng Tóm tắt của tất cả các quy trình đang chạy. Rõ ràng một số sẽ thất bại vì id quá trình của họ đã biến mất (quá trình kết thúc), nhưng nói chung tôi thấy đây là một cách tuyệt vời để cuộn qua danh sách thông tin bộ nhớ và phát hiện bộ trao đổi hàng đầu.
ps -o pid= -xa | awk '{print $1}' | xargs -n 1 sudo vmmap | grep -A3 'Summary'
Đã chỉnh sửa: Một số người dùng ẩn danh thấy dòng lệnh cuối cùng này cần một sự cải tiến vì rõ ràng biến thể ban đầu không hoạt động nữa. Vì vậy, cảm ơn bạn rất nhiều cho dù bạn là ai và tôi xin lỗi vì chỉnh sửa của bạn đã bị từ chối. (Lệnh đầu tiên trước đó đã đọc 'ps xa' và khiến vmmap bị lỗi do tiêu đề của ps bị ném vào nó)
Cải thiện thêm: Nếu bạn muốn biết tên chương trình ngay lập tức, hãy sử dụng thay đổi nhỏ này
ps -o pid= -xa | awk '{print $1}' | xargs -n 1 sudo vmmap | egrep 'swapped_out|Path'
Một sửa đổi nhỏ ở đầu kia của lệnh này cho phép bạn lọc các tên chương trình nhất định hoặc các thành phần đường dẫn dòng lệnh. Ở đây chúng tôi đang xem xét tất cả các quy trình từ 'Thư viện / PrivateFrameworks' chẳng hạn.
ps -o pid,command= -xa | grep 'Library/PrivateFrameworks' | awk '{print $1}' | xargs -n 1 sudo vmmap |