มีวิธีการจับภาพกระบวนการทำงานไปยังดิสก์เพื่อเรียกคืนในภายหลังหรือไม่


11

ฉันมักจะทำงานกับอินสแตนซ์จำนวนมากของ visual studio ที่เปิดให้กับโปรเจ็กต์ต่าง ๆ ฉันสงสัยว่าถ้ามีวิธีการถ่ายภาพ / ไฮเบอร์เนตกระบวนการที่ทำงานอยู่บนดิสก์แทนที่จะปิดมันเพื่อที่ฉันจะสามารถเปิดมันในสถานะเดียวกับ อย่างรวดเร็ว.

ฉันมีพื้นที่ว่างในดิสก์เหลือเฟือดังนั้นฉันจะไม่บันทึกการบันทึกกระบวนการทั้งหมดหากจะช่วยฉันประหยัดเวลาในการเปิดโซลูชันและรอให้โครงการโหลด


+1: แนวคิดที่น่าสนใจ! (แน่นอนว่านี่เป็นสิ่งที่ผู้จัดการหน่วยความจำเสมือนพยายามทำเพื่อคุณโดยอัตโนมัติเมื่อต้องการ)
Andy

2
FWIW บางสิ่งเช่นนี้ ("unexec" ซึ่งอิงตามการถ่ายโอนข้อมูลหลัก) เป็นส่วนหนึ่งของกระบวนการสร้างสำหรับ Emacs บนระบบ UNIX ดูตัวอย่างเช่นxemacs.org/Architecting-XEmacs/unexec.html
coneslayer

1
ที่ถูกออกแบบมาโดยเฉพาะสำหรับ emacs ไม่? ฉันสงสัยว่าเวอร์ชันวัตถุประสงค์ทั่วไปสามารถเขียนได้หรือไม่
Andy

ฉันได้ค้นหาบางสิ่งเช่นนี้มาระยะหนึ่งแล้ว มันจะเป็นประโยชน์อย่างยิ่งหากคุณต้องการหยุดการเข้ารหัสวิดีโอชั่วคราว!
พัฒนา

1
ดูเหมือนว่าจะมีบางอย่างเช่นนี้สำหรับ Linux linux.org/apps/AppId_2488.html อย่างไรก็ตามฉันคิดว่าปัญหาจะเป็นตัวจัดการไฟล์แบบเปิด, ซ็อกเก็ตเครือข่าย ฯลฯ ซึ่งทำให้ปัญหานี้เป็นเรื่องไม่สำคัญ
Sijin

คำตอบ:


2

ฉันทำสิ่งนี้โดยใช้ VirtualBox จาก Sun เพื่อแยกโครงการ นอกจากนี้ยังมีประโยชน์เพราะคุณสามารถถ่ายภาพได้

ข้อเสียคือคุณต้องใส่ทั้งระบบปฏิบัติการที่นั่น


3
ใช่ - ฉันใช้ VirtualBox สำหรับสแน็ปช็อตระดับระบบปฏิบัติการนั่นคือสิ่งที่ฉันมีความคิดสำหรับสแน็ปช็อตระดับแอปพลิเคชัน ดูเหมือนว่ามีบางอย่างเช่นนี้สำหรับ Linux linux.org/apps/AppId_2488.html อย่างไรก็ตามฉันคิดว่าปัญหาจะเป็นตัวจัดการไฟล์แบบเปิดและเช่นนั้นซึ่งทำให้ปัญหานี้เป็นเรื่องไม่สำคัญ
Sijin

0

ProcessExplorerจาก MS Sysinternalsให้คุณหยุดกระบวนการชั่วคราว สิ่งนี้ช่วย / ทำงานได้อย่างไร?


5
น่าเสียดายที่ไม่ใช่ ... ฉันต้องการนำกระบวนการออกจากหน่วยความจำเพื่อเพิ่มประสิทธิภาพ แม้ว่านี่จะเป็นโปรแกรมที่มีประโยชน์มากสำหรับแอพพลิเคชั่นที่ใช้ CPU มากซึ่งคุณอาจต้องหยุดชั่วคราว!
พัฒนา

การหยุดโปรเซสให้หยุดการทำงานของโพรเซสอื่นทั้งหมดที่เกิดขึ้นในการส่งข้อความ windows ไปบางส่วน มันเกิดขึ้นที่กระบวนการบางอย่างต้องการส่งข้อความไปยังกระบวนการอื่นและกระบวนการบางอย่างต้องการเป็นเป้าหมายสำหรับการออกอากาศดังกล่าว ดังนั้นการหยุดกระบวนการบางอย่างนั้นไม่เป็นอันตราย แต่สำหรับกรณีอื่น ๆ มันจะรบกวนการทำงานของคุณกับคอมพิวเตอร์ และอีกสิ่งหนึ่ง กระบวนการบางอย่างหลังจากที่ถูกเรียกคืนจากการหยุดชั่วคราวที่ยาวนานจะหยุดและใช้ CPU ทั้งหมดของคุณเพื่อชดเชยเวลาที่สูญเสียในการคำนวณสิ่งที่ฉลาดมาก: P
Roland Pihlakas

นอกจากนี้ยังมียูทิลิตี้บรรทัดคำสั่งpssuspendจาก MS Sysinternals คุณสามารถค้นหาได้ที่นั่น: technet.microsoft.com/en-us/sysinternals/bb897540 มันเป็นส่วนหนึ่งของแพคเกจ PsTools: technet.microsoft.com/en-us/sysinternals/bb896649ที่คุณยังสามารถหาตัวอย่างเช่นpskillเครื่องมือซึ่งเป็นตัวอย่างที่ค่อนข้างสะดวกหลังจากที่กลับมาทำงานกระบวนการและมันเกิดขึ้นที่จะได้รับวิธีที่ตื่นเต้นเกินไป .
Roland Pihlakas

1
@Breakthrough แต่ถ้ากระบวนการถูกระงับมันจะยกเลิกการใช้หน่วยความจำ (เนื่องจากโปรแกรมอื่นใช้หน่วยความจำซึ่งจะทำให้เพจนี้หมดลง) โดยไม่ต้องพยายามเรียกคืนจนกว่าคุณจะดำเนินการต่อ นี่เป็นวิธีที่ใกล้เคียงที่สุด / ปลอดภัยที่สุดในการได้รับสิ่งที่คุณต้องการ - โปรแกรมที่ถูกระงับชั่วคราวที่สลับสับเปลี่ยนโดยทั่วไปคือสแนปชอตที่จัดเก็บไว้อย่างปลอดภัยเพียงหนึ่งเดียวที่หายไปเมื่อรีบูต
binki

-1

คุณสามารถใช้ WinDbg (เครื่องมือ Microsoft) เพื่อสร้างการถ่ายโอนข้อมูลสถานะปัจจุบันของเครื่อง windows โดยปกติจะใช้เพื่อวิเคราะห์ปัญหา แต่อาจตอบสนองความต้องการของคุณได้เช่นกัน ค้นหาคำหลัก WinDbg และ dump สำหรับข้อมูลเพิ่มเติมอาจมีตัวเลือกในการถ่ายโอนข้อมูลกระบวนการเดียวเท่านั้น


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