सबसे पहले, यह है कि क्या ध्यान दें कि दो कि gc
में बहुत अलग किसी भी चर कि आप अभी भी कर रहे हैं using- को नहीं हटाता है यह केवल लोगों को है कि आप अब की पहुंच है के लिए स्मृति भी मुक्त हो रहे हैं (महत्वपूर्ण है rm()
का उपयोग करके हटा दिया गया है, या कहें, एक फ़ंक्शन में बनाया गया है जो तब से लौटा है)। चल रहा है gc()
आपको कभी भी चर खोने नहीं देगा।
rm()
पर कॉल करने के बाद आपको gc()
पर कॉल करना चाहिए या नहीं, हालांकि, यह एक अच्छा है। जीसी के लिए documentation मददगार नोट्स:
जीसी की एक कॉल कचरा संग्रह होने का कारण बनती है। यह उपयोगकर्ता हस्तक्षेप के बिना स्वचालित रूप से भी हो जाएगा, और जीसी कॉल करने का प्राथमिक उद्देश्य स्मृति उपयोग पर रिपोर्ट के लिए है।
हालांकि, यह बड़ी वस्तु को हटा दिए जाने के बाद जीसी को कॉल करने के लिए उपयोगी हो सकता है, क्योंकि यह आर को ऑपरेटिंग सिस्टम में स्मृति वापस करने के लिए संकेत दे सकता है।
तो जवाब है कि यह gc()
कॉल करने के लिए (और बहुत कम से कम, चोट नहीं कर सकते हैं), भले ही यह संभावना है (जल्द ही नहीं तो तुरंत, तो) वैसे भी ट्रिगर हो जाएगा अच्छा हो सकता है।
स्रोत
2012-01-11 03:41:09
आपके उत्तर के लिए धन्यवाद। आम तौर पर, आर स्वचालित कचरा संग्रह अच्छा माना जाता है? (उदाहरण के लिए जावा के रूप में मजबूत के रूप में) – RockScience
जवाब देने के लिए यह एक कठिन सवाल है, मुझे यकीन नहीं है। [यह सवाल] (http://stackoverflow.com/questions/1467201/forcing-garbage-collection-to-run-in-r-with-the-gc-command) उपयोगी है। –
आम तौर पर आपको जीसी कॉल नहीं करना चाहिए, और यदि आप ऐसा करते हैं तो इसमें बहुत अंतर नहीं होता है। – hadley