Windows में एक बार फिर से भौतिक फ़ाइल में पेज मेमोरी से "स्वैप" कैसे करें (जैसे कि लिनक्स स्वैप-ऑफ)


10

क्या एक विंडोज़ पीसी पर मेमोरी को वापस भेजने का एक तरीका है (पेज मेमोरी में डाले गए सभी मेमोरी डेटा (या स्वैप, जो भी आप पसंद करते हैं) को वापस लाने के लिए?

लिनक्स पर, कोई भी आसानी से स्वैप / देव / sdaX के साथ कर सकता है, जहां एक्स स्वैप स्वैप है। खिड़कियों पर, यह मुझे हर बार रिबूट करने के लिए कहता है।

ऐसा करने का कारण यह है, यह है कि, भले ही स्वैप फ़ाइल के लिए डेटा स्वैप करने से मुझे पूरी तरह से भौतिक राम में एक संसाधन-भूखा खेल खेलने की अनुमति मिलती है, जब मैं खेल को रोक देता हूं, तो मेरे बाकी सभी कार्यक्रम चलते हैं धीमी गति से। यह सामान्य है; सभी कार्यक्रमों को पृष्ठ फ़ाइल में धकेल दिया गया क्योंकि मेरी रैम बहुत छोटी थी, और गेमिंग के बाद उन कार्यक्रमों में सभी मेमोरी एक्सेस हार्ड पेज के दोषों के कारण बड़ी देरी और परिणाम के रूप में कुछ निराशा होती है।

हालाँकि, उस निराशा को आसानी से टाला जा सकता है, बस पीसी को एक या एक मिनट के लिए भौतिक मेमोरी में सभी डेटा वापस कॉपी करने की अनुमति देता है, और फिर तेजी से काम करने वाले पीसी पर काम करना फिर से शुरू करता है! (सुस्ती को सहन करने के बजाय-काम करने वाले)

इस पर किसी भी सलाह के लिए अग्रिम धन्यवाद!

सधन्यवाद


आप जो चाहते हैं, वह एक "हाइपरवाइजर" है, जिस पर विंडोज की कई प्रतियां चल रही हैं। आप एक को निलंबित करते हैं और दूसरे को अनसेंड करते हैं। यह अन्य प्रणालियों के साथ काफी किया जाता है, लेकिन मुझे यकीन नहीं है कि एक हाइपरविजर है जो विंडोज के लिए इसे बंद कर सकता है।
डेनियल आर हिक्स

जवाबों:


6

दुर्भाग्यवश नहीं। जिस तरह से विंडोज वर्चुअल मेमोरी सिस्टम काम करता है, उनमें से कई पृष्ठों को केवल तब तक मैप नहीं किया जा सकता है जब तक कि वे गलती नहीं करते हैं और स्मृति में संग्रहीत नहीं किए जा सकते हैं जब तक कि वे मैप नहीं किए जाते हैं। इसलिए विंडोज को तब तक इंतजार करना पड़ता है जब तक पेज एक्सेस नहीं हो जाते।


हो सकता है कि कुछ पर्याप्त विशेषाधिकार प्राप्त थर्ड-पार्टी प्रक्रिया उन पृष्ठों को आज़मा सकें और उन तक पहुँच प्राप्त कर सकें जिससे वे गलती करते हैं?
बैड

यह पृष्ठों तक पहुँचने के लिए किसी अन्य प्रक्रिया के लिए बहुत अच्छा नहीं होगा। आपको उन ऐप्स के लिए प्रक्रियाओं में फॉल्ट की आवश्यकता है जिन्हें आप उपयोग करने की कोशिश कर रहे हैं।
जेमी हनराहन

यह सोचने के लिए आओ, यह किया जा सकता है ... की तरह। आपको दूरस्थ थ्रेड को लक्ष्य प्रक्रिया में इंजेक्ट करना होगा। वह थ्रेड फिर पता स्थान पर VirtualQuery करेगा और फिर बस हर प्रक्रिया-निजी पृष्ठ को पढ़ेगा। हालाँकि, उन पृष्ठों के बीच अंतर करने का कोई तरीका नहीं है जो रैम में थे और बाद में पृष्ठबद्ध नहीं किए गए थे, बनाम ऐसे पृष्ठ जिन्हें पहले कभी पृष्ठांकित नहीं किया गया था। पृष्ठों को पहचानने का कोई तरीका भी नहीं होगा प्रक्रिया को फिर कभी ज़रूरत नहीं होगी। तो आप बहुत सारे सामान में पेजिंग करेंगे जो आपके पास नहीं थे।
जेमी हनराहन

@JamieHanrahan ऐसा लगता है कि काम करेगा।
डेविड श्वार्ट्ज

1

दुर्भाग्य से ऐसा कोई विकल्प नहीं है।

विंडोज में स्वैपिंग को कम करने का एकमात्र तरीका फिजिकल रैम को बढ़ाना है।


या स्वैप को पूरी तरह से अक्षम कर दें। जरूरी नहीं कि एक विंडोज़ की बात हो, लेकिन मेरी लिनक्स / बीएसडी मशीनों पर, मैं घूर्णी स्वैप के किसी भी रूप को अक्षम कर देता हूं क्योंकि यह अच्छा नहीं होता है, और जब चीजें इसका उपयोग करना शुरू कर देती हैं, तो एक कठिन सीमा मारने के बजाय, उन्होंने सब कुछ धीमा कर दिया।
हत्यारे

1
पेजफाइल को अक्षम करने से पेजिंग को डिस्क में अक्षम नहीं किया जाएगा। यह केवल निजी प्रतिबद्ध पता स्थान के पेज-आउट को अक्षम करेगा। मेमोरी मैप की गई फ़ाइल सामग्री अभी भी अंदर और बाहर पृष्ठांकित की जाएगी।
जेमी हनराहन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.