ฉันจะดูจำนวนหน่วยความจำที่กระบวนการใช้อยู่และไม่ได้จัดสรรไว้ได้อย่างไร


1

ฉันกำลังมองหาวิธีในการกำหนดหน่วยความจำที่กระบวนการใช้จริง ๆ (ไม่ใช่แค่จัดสรร)

ดูที่ procmon.exe หรือ vmmap.exe ค่าที่เกี่ยวข้องคือ:

ไบต์ส่วนตัว
หน่วยความจำทั้งหมดที่จัดสรร

ชุดการทำงาน
หน่วยความจำที่ใช้ใน RAM จริง

สมมติและprivate bytes = 3 GB working set = 200 MBในกรณีที่ดีที่สุดกระบวนการใช้เพียง 200 MB และส่วนที่เหลือจะถูกจัดสรรและไม่ได้ใช้ ในกรณีที่เลวร้ายที่สุดมันใช้ทั้ง 3 GB จะมีการเปลี่ยน 2,8 GB เป็น pagefile

(ฉันอ่านคำถามว่าแอพ windows ของฉันใช้หน่วยความจำเท่าไหร่และไบต์ส่วนตัวไบต์เสมือนชุดทำงานคืออะไรแต่พวกเขาไม่ตอบคำถามของฉัน)

มีวิธีการหาหน่วยความจำที่ใช้จริงของกระบวนการหรือไม่?

แก้ไข:
สำหรับฉันถูกใช้หน่วยความจำคือจำนวนหน่วยความจำที่จัดสรรซึ่งเต็มไปแล้ว

เมื่อ jus จัดสรร 3 GB 'ไม่มีอะไรเกิดขึ้น หน่วยความจำสงวนไว้สำหรับกระบวนการเท่านั้น ไบต์ส่วนตัวเพิ่มขึ้น แต่ชุดการทำงานยังคงไม่เปลี่ยนแปลง หลังจากกรอกหน่วยความจำที่จัดสรร 200 MB มันจะปรากฏในชุดการทำงาน

หน่วยความจำที่ใช้แล้ว / เต็มไป 200 MB นี้เป็นสิ่งที่ฉันมองหาโดยไม่คำนึงว่าผึ้งกำลังทำงานอยู่บนชุดการทำงานหรือถูกสลับเปลี่ยน


3
อะไรคือความหมายของหน่วยความจำที่กระบวนการใช้ ?
gronostaj

@gronostaj แก้ไขโพสต์ขอบคุณ
มาร์ชกระดิก

ระบบปฏิบัติการไม่ได้ติดตามว่าหน่วยความจำที่จัดสรรถูกเขียนไปยังหรือไม่ มันจะติดตามว่าหน้าใดที่อยู่ใน RAM จริง (ชุดการทำงาน) และจำนวนการจัดสรร (Private bytes) ฉันไม่คิดว่าคุณจะพบสิ่งที่คุณกำลังมองหาในระดับ OS มันจะเป็นฟังก์ชั่นเฉพาะแอปพลิเคชัน
หนัก

@heavyd ระบบรู้ว่าหน้าใดที่ไม่ได้อยู่ใน Working Set ได้ถูกเขียนไปแล้ว สิ่งนี้สามารถตรวจสอบได้ง่าย
มาร์ชกระดิก

นี่เป็นคำถามที่ดี ฉันก็สับสนเช่นกันว่าคอลัมน์เหล่านั้นควรแสดงอย่างไรและเป็นไปได้หรือไม่ที่จะมีข้อมูลเชิงลึกเกี่ยวกับพื้นที่สว็อปที่ใช้โดยกระบวนการ ดูเหมือนว่าไม่ใช่ superuser.com/questions/917492/…
cnst
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.