मेरा एक साधारण सवाल है।
मैं अक्सर बड़े डेटासेट वाले पंडों में जटिल संगणनाएँ चलाता हूँ। कभी-कभी अजगर रैम का उपयोग उस बिंदु तक अधिक करता रहता है जहां सब कुछ संतृप्त हो जाता है और मेरा कंप्यूटर मूल रूप से क्रैश हो जाता है। मैं विंडोज़ मशीन पर एनाकोंडा वितरण का उपयोग करता हूं।
क्या एक थ्रेशोल्ड सेट करना संभव है (जैसे 98%) कि अगर रैम का उपयोग उस सीमा से ऊपर चला जाता है, तो कर्नेल को फिर से शुरू किया जाना चाहिए या प्रक्रिया को मार दिया जाना चाहिए?
1 उत्तर
यूनिक्स सिस्टम पर अपेक्षाकृत आसान लगता है (https://docs. python.org/2/library/resource.html#resource.setrlimit)। हालांकि, विंडोज़ सिस्टम के लिए स्मृति की मात्रा को सीमित करने का एक आंतरिक पायथन तरीका प्रतीत नहीं होता है। फिर आपको विंडोज एपीआई पर निर्भर रहना होगा। जहाँ तक मैं बता सकता हूँ इस उत्तर से, आप सबसे अच्छे होंगे एक जॉब ऑब्जेक्ट बनाना बंद करें, और सहयोगी यह अजगर प्रक्रिया के साथ। तब आप प्रक्रिया की स्मृति को सीमित करने के लिए JOB_OBJECT_LIMIT_JOB_MEMORY
का उपयोग करेंगे। या संभवतः आप SetProcessWorkingSetSize.
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।