मैं बहु-थ्रेडेड कोड में pandas.DataFrame
का उपयोग कर रहा हूं (वास्तव में DataFrame
का कस्टम सबक्लास Sound
कहा जाता है)। मैंने देखा है कि मेरे पास मेमोरी रिसाव है, क्योंकि मेरे प्रोग्राम की मेमोरी उपयोग धीरे-धीरे 10 एमएन से अधिक हो जाती है, अंततः मेरे कंप्यूटर मेमोरी और क्रैश के ~ 100% तक पहुंच जाती है।पांडा डेटाफ्रेम का उपयोग कर मेमोरी लीक
मैं objgraph इस्तेमाल किया इस रिसाव पर नज़र रखने के प्रयास करने के लिए, और पता चला कि MyDataFrame
के उदाहरण की गिनती, जबकि ऐसा नहीं होना चाहिए हर समय ऊपर जा रहा है: अपने run
विधि में हर धागा, एक उदाहरण बनाता है कुछ गणना करता है, बचाता है परिणामस्वरूप एक फ़ाइल में निकलता है और बाहर निकलता है ... इसलिए कोई संदर्भ नहीं रखा जाना चाहिए।
objgraph
का उपयोग करते हुए मैंने पाया स्मृति में सभी डेटा फ्रेम एक समान संदर्भ ग्राफ है:
मुझे पता नहीं है कि अगर सामान्य है या नहीं ... ऐसा लगता है कि यह क्या बना रहा है स्मृति में मेरी वस्तुओं। कोई विचार, सलाह, अंतर्दृष्टि?
क्या यह दोहराने के लिए एक छोटा कोड स्निपेट शामिल करना संभव है? –
क्या आपने मैन्युअल रूप से कचरा कलेक्टर चलाने की कोशिश की? यदि आपके पास परिपत्र संदर्भ हैं, तो स्मृति को रिलीज़ करने के लिए इसकी आवश्यकता हो सकती है। 'आयात जीसी; gc.collect() ' – lgautier