จากความคิดที่โพสต์ที่นี่ฉันได้สร้างโค้ดขึ้นมาเล็กน้อย:
sudo vmmap notifyd | grep -A3 'Summary'
ซึ่งแสดงส่วนข้อมูลสรุป (3 บรรทัด) ของเอาต์พุต vmmap ฉันใช้notifyd
ในตัวอย่างนี้ แต่คุณสามารถแทนที่ด้วย PID ใด ๆ ที่คุณรู้
บรรทัดนี้จะพยายามแสดงรายการบรรทัดสรุปทั้งหมดของกระบวนการที่กำลังทำงานอยู่ทั้งหมด เห็นได้ชัดว่าบางอย่างจะล้มเหลวเนื่องจากรหัสกระบวนการของพวกเขาหายไปแล้ว (กระบวนการสิ้นสุดลง) แต่โดยทั่วไปฉันพบว่านี่เป็นวิธีที่ดีในการเลื่อนดูรายการข้อมูลหน่วยความจำและมองหา swapper ด้านบน
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'
การแก้ไขเล็กน้อยในส่วนอื่น ๆ ของคำสั่งนี้ช่วยให้คุณสามารถกรองชื่อโปรแกรมบางอย่างหรือส่วนประกอบของเส้นทางบรรทัดคำสั่ง ที่นี่เรากำลังดูกระบวนการทั้งหมดจาก 'Library / PrivateFrameworks' เท่านั้น
ps -o pid,command= -xa | grep 'Library/PrivateFrameworks' | awk '{print $1}' | xargs -n 1 sudo vmmap |