python - पायथन कचरा कलेक्टर दस्तावेज



garbage-collection (1)

मैं दस्तावेजों की तलाश में हूं जो वर्णन में वर्णन करते हैं कि कैसे पाइथन कचरा संग्रह काम करता है।

मुझे दिलचस्पी है कि किस चरण में किया जाता है। इन 3 संग्रहों में क्या वस्तुएं हैं? प्रत्येक चरण में किस प्रकार की वस्तुएं हटा दी जाती हैं? संदर्भ चक्र खोजने के लिए क्या एल्गोरिदम का उपयोग किया जाता है?

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

भविष्यवाणी करना आसान है कि यह get_count() और get_threshold() साथ सबसे पुरानी पीढ़ी कब एकत्र करेगा। यह set_threshold() साथ भी छेड़छाड़ की जा सकती है। लेकिन मुझे नहीं लगता कि निर्णय लेना कितना आसान है कि इसे collect() करने के लिए बेहतर है या निर्धारित समय के लिए प्रतीक्षा करें।


पाइथन कैसे कचरा संग्रह (स्रोत कोड के अलावा) के बारे में कोई निश्चित संसाधन नहीं है, लेकिन उन 3 लिंक आपको एक बहुत अच्छा विचार देना चाहिए।

अद्यतन करें

स्रोत वास्तव में बहुत उपयोगी है। आप इससे कितना अच्छी तरह से बाहर निकलते हैं इस पर निर्भर करता है कि आप सी को कितनी अच्छी तरह पढ़ते हैं, लेकिन टिप्पणियां वास्तव में बहुत उपयोगी होती हैं। https://github.com/python/cpython/blob/master/Modules/gcmodule.c पर collect() फ़ंक्शन पर https://github.com/python/cpython/blob/master/Modules/gcmodule.c और टिप्पणियां अच्छी तरह से प्रक्रिया की व्याख्या करें (यद्यपि बहुत तकनीकी शर्तों में)।





garbage-collection