मेरे पास एक लंबी चल रही पायथन प्रक्रिया है जो मैंने योजना बनाई तुलना में अधिक डेटा उत्पन्न कर रही है। मेरे परिणाम एक सूची में संग्रहीत किए जाते हैं जिन्हें प्रोग्राम पूरा होने पर धाराबद्ध (मसालेदार) और डिस्क पर लिखा जाएगा - यदि यह अब तक हो जाता है। लेकिन इस दर पर, यह संभावना है कि सूची सभी 1+ जीबी मुक्त रैम को समाप्त कर देगी और प्रक्रिया क्रैश हो जाएगी, प्रक्रिया में मेरे सभी परिणामों को खो देगा।लिनक्स पर वर्तमान में चल रहे पायथन प्रक्रिया से डेटा संरचना तक कैसे पहुंचे?
मैं समय-समय पर डिस्क पर परिणाम लिखने के लिए अपनी स्क्रिप्ट को संशोधित करने की योजना बना रहा हूं, लेकिन यदि संभव हो तो मैं वर्तमान में चल रही प्रक्रिया के परिणामों को सहेजना चाहता हूं। क्या कोई तरीका है कि मैं एक चल रही प्रक्रिया से इन-मेमोरी डेटा संरचना को पकड़ सकता हूं और इसे डिस्क पर लिख सकता हूं?
मुझे code.interact() मिला, लेकिन चूंकि मेरे पास पहले से ही मेरे कोड में यह हुक नहीं है, यह मेरे लिए उपयोगी नहीं लगता है (Method to peek at a Python program running right now)।
मैं फेडोरा 2.5 पर फेथॉन 2.5 चला रहा हूं। कोई विचार?
बहुत बहुत धन्यवाद।
शाहिन
आप 'वर्तमान प्रक्रिया की डेटा संरचना' के साथ क्या करने की उम्मीद कर रहे हैं? यदि आप इसे सहेजते हैं और इसे वापस लोड करते हैं, तो क्या आप स्मृति के बाहर नहीं होंगे जैसा आप शुरू करना चाहते हैं? –
इस विशेष मामले में, मैं इसे किसी अन्य मशीन (अधिक मेमोरी के साथ) में स्थानांतरित करने के लिए इसे स्थानांतरित कर दूंगा और या तो इसे टुकड़े टुकड़े को वापस लिखूंगा या इसे सीधे डेटाबेस में लोड कर दूंगा। स्पष्ट रूप से टिकाऊ नहीं है, लेकिन मैं केवल एक बार स्टॉपगैप समाधान की तलाश में हूं। – Shahin