RAM / स्वैप उपयोग को कैसे नियंत्रित करें


18

क्या आवेदन स्तर पर RAM / स्वैप उपयोग नीति को नियंत्रित करने का कोई तरीका (एप्लिकेशन) है।

मेरे पास कुछ एप्लिकेशन हैं जिनका मैं हर समय उपयोग करता हूं और मैं चाहता हूं कि वे हर समय रैम में रहें और ऐसे भी एप्लिकेशन हैं जो मैं काफी कम उपयोग करता हूं और उन्हें मांग पर स्वैप करने के लिए फेंक दिया जा सकता है। मुझे पता है कि डिफ़ॉल्ट रूप से कॉन्फ़िगर की गई खिड़कियों को मुझे सबसे अच्छा प्रदर्शन देना चाहिए, लेकिन मैं यह जांचना चाहता हूं कि क्या मुझे अधिक मिल सकता है :)।

मैं विंडोज 7 का उपयोग करता हूं।


2
+1। मुझे एक विधि में दिलचस्पी है जो XP के लिए काम करती है।
जेवियरजज

जवाबों:


9

हाँ वहाँ है: VirtualLock फ़ंक्शन को प्रोग्राम कॉल करें :

जब तक कोई प्रक्रिया बंद नहीं होती तब तक पृष्ठ भौतिक मेमोरी में बने रहते हैं, जब तक कि प्रक्रिया उन्हें अनलॉक या समाप्त नहीं कर देती। इन पृष्ठों की गारंटी दी जाती है कि वे लॉक होने के समय पेजफाइल पर न लिखे जाएँ।

मेरा मानना ​​है कि SetProcessWorkingSetSize फ़ंक्शन भी सहायक हो सकता है।


उन लोगों के लिए जो सोच रहे हैं कि मैं यह सुझाव देने के लिए एक विधर्मी हूं कि यह उपयोगी हो सकता है:

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


अपडेट: पर एक नजर डालें प्रक्रिया हैकर के Reduce Working Setमेनू विकल्प।


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

1
@ रैंडॉल्फ: मैंने कभी इसकी सिफारिश नहीं की , मैंने सिर्फ यह उल्लेख किया है कि इसके विपरीत, जो अन्य लोगों को लगता है कि यह संभव है । मैं व्यक्तिगत रूप से सिर्फ ओपी को यह बताने से नफरत करता हूं "चलो अपने विचार को मार दें" - मुझे लगता है कि ओपी ने समझा कि तथ्य यह है कि उसे ऐसा नहीं करना चाहिए, लेकिन अगर वह अभी भी चाहता है, तो मुझे लगता है कि उसे यह जानने का अधिकार है कि कैसे। (वहाँ एक कारण है कि वे इन कार्यों को बनाया है, और मैं उस व्यक्ति का न्याय करने के लिए नहीं हूँ कि ओपी को उनका उपयोग करना चाहिए या नहीं।)
मेहरदाद

विंडोज में बहुत सारे कोड हैं जो पिछड़े संगतता के लिए छोड़ दिए गए थे। अगर वहाँ होने के लिए एक कारण है, कि यह होगा। कोई इसे SQL सर्वर में सिकोड़ सुविधा से तुलना कर सकता है, जिसे किसी भी परिस्थिति में उपयोग नहीं किया जाना चाहिए, लेकिन संगतता कारणों से छोड़ दिया गया था। विंडोज 7 उचित स्मृति प्रबंधन के साथ एक आधुनिक ओएस है, और पृष्ठ फ़ाइल को हटाया नहीं जाना चाहिए, और न ही कार्यक्रमों को "नियमों" के बाहर स्मृति में रहने की कोशिश करनी चाहिए। यह बहुत खराब अभ्यास है और इसका परिणाम अस्थिर और / या अनुपयोगी प्रणाली हो सकती है।

1
@ रैंडॉल्फ़: (मैं देख रहा हूँ कि आपने उपमा को छोड़ दिया है ।:)) दूसरी प्रक्रिया को खोलने और कॉल करने के लिए एक छोटा प्रोग्राम बनाएं (~ 10 लाइनों से अधिक नहीं होना चाहिए) SetProcessWorkingSetSize। यह एक तरीका है। यदि निश्चित रूप से, यदि आप नहीं जानते हैं कि इसका क्या मतलब है क्योंकि आप डेवलपर नहीं हैं, तो जाहिर है कि बहुत कुछ नहीं है जो आप कर सकते हैं। लेकिन यह अभी भी संभव है, और यह कहना असंभव है कि यह अभी भी गलत है, इसके लिए ओपी की तुलना में अधिक ज्ञान की आवश्यकता है।
मेहरदाद

1
@ रैंडॉल्फ, आप विभिन्न फ्रीवेयर ऐप डाउनलोड कर सकते हैं जो सभी को चलाने वाले ऐप्स को पेजफाइल (प्रत्येक प्रक्रिया में SetProcessWorkingSetSize कहकर) जाने के लिए मजबूर करते हैं।
क्रिस ओ

5

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

मेरा अनुभव: मुझे एक पियानो सॉफ्टवेयर (1 जीबी रैम उपयोग) के साथ यह समस्या थी जिसे थोड़ी देर तक इस्तेमाल नहीं किए जाने के बाद स्वैप में फेंक दिया जाएगा। कुछ घंटों बाद एक पियानो कुंजी बजाना एक गड़बड़ गड़बड़ में परिणाम होगा क्योंकि स्वैप ध्वनि को खेलने के लिए पर्याप्त तेज़ी से लोड नहीं किया जाएगा। (फिर मैं फिर से लोड करने के लिए अपनी पूरी बांह हर चाबी पर रखूंगा!)

यदि RAM चिंता का विषय है, तो मेरा सुझाव है कि आप और अधिक खरीद लें (जैसे विंडोज 7 x64 के साथ 8 से 12 जीबी)। RAM- के प्रति सचेत होने के लिए, RAM का प्लेसमेंट एक गॉडसेंड है।

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


3
कर। नहीं। हटाएँ। । पृष्ठ। फ़ाइल। कभी।

7
मेरे पास है। किया गया। का उपयोग करना। Win7। साथ में। नहीं पेजफाइल। के लिये। महीने। के बग़ैर। उ। अड़चन।
एमटी

1
मैं हर समय पेज 7 के बिना Win7 का उपयोग करता हूं, हालांकि मुझे ऐसा लगता है कि यह मेरे वर्तमान काम के लिए पर्याप्त नहीं हो सकता है :(
दारकर

3
@ रैंडोल्फ: एमएस को पता है कि वे किस बारे में बात कर रहे हैं, क्योंकि वे जानते हैं कि उनके ग्राहक वास्तव में हमेशा कंप्यूटर पेशेवरों के लिए नहीं हैं। लेकिन उन लोगों के लिए जो वास्तव में वास्तव में जानते हैं कि पेजफाइल क्या करता है और क्या नहीं करता है, उन्हें अभ्यास में मजबूर करने का कोई कारण नहीं है कि उन्हें ज़रूरत नहीं है।
मेहरदाद

2
@ रैंडोल्फ: यदि आप बिना सीटबेल्ट के गति सीमा से अधिक ड्राइव करते हैं, तो आप मर सकते हैं और अन्य लोगों को भी मार सकते हैं, दूसरों के लिए बीमा लागत बढ़ाने का उल्लेख नहीं करते। सबसे खराब स्थिति यह हो सकती है कि अगर आपके कंप्यूटर की मेमोरी खत्म हो जाए तो स्थिति के आधार पर आपको बस थोड़ा सा समय गंवाना पड़ेगा। क्या आपको कुछ नहीं दिख रहा है (पढ़ें: बहुत कुछ) यहाँ की सादृश्य के साथ गलत है? इसके अलावा, क्या आपने लिनक्स / यूनिक्स का इस्तेमाल किया है? कभी गौर किया है कि कैसे वे आपको विंडोज के विपरीत, अपने आप को फांसी देने के लिए पर्याप्त रस्सी से अधिक देते हैं? लोग अभी भी उनका उपयोग करते हैं - क्या वह प्रभाव में आ रहा है या कुछ और?
मेहरदाद

2

पृष्ठ फ़ाइल का उपयोग बहुत सारे कारकों पर निर्भर करता है। यदि आप बहुत सारे कार्यक्रमों का उपयोग करते हैं और एक ही समय में उन सभी के लिए पर्याप्त रैम नहीं है, तो पृष्ठ फ़ाइल में उनके कुछ हिस्सों (या सभी) को स्वैप किया जा सकता है।

यदि आपके पास 4GB RAM है और मान लें कि इसका लगभग 3GB वीडियो कार्ड और अन्य संसाधन उपयोगकर्ताओं के लिए 4GB के कुछ हिस्सों को अवरुद्ध करने के कारण उपलब्ध है, और आप केवल कुछ प्रोग्रामों का उपयोग करते हैं जो पूरी तरह से मेमोरी नहीं लेते हैं, सैद्धांतिक रूप से आप कभी भी स्वैप फ़ाइल की आवश्यकता नहीं होनी चाहिए। हालाँकि, विंडोज़ विस्टा और 7 डिस्क के कार्यक्रमों की अदला-बदली में बेहद आक्रामक हैं।

मेरे पास एक सेटिंग हुआ करती थी जो विंडोज 7 के स्वैपिनेस को कम कर देती थी (स्वैपीनेस एक लिनक्स शब्द है लेकिन यह विंडोज पर भी लागू होता है, और चूंकि विंडोज स्वैपिंग आक्रामकता को वश में करने के लिए एक रजिस्ट्री सेटिंग है, ऐसा लगता है कि माइक्रोसॉफ्ट अच्छी तरह से सहमत है, भले ही एक कुएं में मौजूद हो। छिपे हुए तरीके से), लेकिन मैं इसे अब और नहीं जान सकता। इसके लिए खोज करना कि मैं यहाँ कैसे समाप्त हुआ। इस सेटिंग का सबसे अच्छा विकल्प जो मुझे मिला है, यह सुनिश्चित करना है कि आप एक निश्चित आकार की स्वैप फ़ाइल का उपयोग करें (मैं 32-बिट ओएस पर 4096-4096 के लिए जाता हूं, और 64-बिट वाले 12 जीबी पर क्योंकि मेरे पास 6 जीबी सिस्टम रैम है) एक समर्पित विभाजन पर। एक अतिरिक्त 7200rpm 200GB ड्राइव के बाद, मैं इस ड्राइव पर अपने सभी स्वैप विभाजन (विंडोज़ XP, 7, 7 64-बिट और विभिन्न लिनक्स) रखता हूं। यह मेरे लिए काम करने लगता है, लेकिन YMMV।


1

वर्थ उल्लेख: जब विंडोज़ पता लगाती है कि आप अक्सर कुछ एप्लिकेशन का उपयोग कर रहे हैं, तो इसमें उन ऐप्स को मेमोरी में डाल दिया जाता है, जिससे वे तेजी से लोड होंगे। मुझे लगता है कि खिड़कियों पर भरोसा करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.