मुझे दिलचस्पी है कि कैसे कचरा संग्रह काम करता है। मैंने पढ़ा है कि मार्क-एंड-स्वीप, स्टॉप-एंड-कॉपी, जेनरेशनल जीसी इत्यादि जैसे कुछ काम ... मैं इनमें से कुछ को लागू करने और उनके व्यवहार की तुलना करने के साथ प्रयोग करना चाहता हूं। अपने आप से प्रयोग शुरू करने का एक अच्छा तरीका क्या है? आदर्श रूप से सी, जावा या पायथन में कुछ (हालांकि अंतिम दो खुद को कचरा इकट्ठा कर रहे हैं, इसलिए ऐसा लगता है कि उन्हें उपयोग करना मुश्किल होगा ...)मैं कचरा संग्रहण के साथ प्रयोग कैसे कर सकता हूं?
उत्तर
कभी भी इसके साथ कभी नहीं खेला, लेकिन सी/सी ++ के साथ उपयोग के लिए हमेशा उल्लेख किया जाने वाला वह Hans Boehm's है।
अपने स्वयं के JVM को लागू करें। कुछ भी नहीं, बस मूल बातें। बहुत सारे कार्यक्रम और कंपाइलर/भाषाएं हैं जो जेवीएम कोड उत्पन्न करती हैं ताकि आपके पास परीक्षण करने के लिए बहुत सारी सामग्री हो।
.NET रनटाइम और जावा रनटाइम अब ओपन सोर्स हैं, इसलिए यदि आप वर्तमान समर्थन प्रोग्रामिंग भाषा के साथ खेलना चाहते हैं तो आप रनटाइम के साथ स्वयं प्रयोग कर सकते हैं। हालांकि अगर आप इसे स्वयं करना चाहते हैं तो आपको शायद अपना खुद का रनटाइम बनाना होगा जिसमें इसकी अपनी भाषा हो।
साथ खेलने के लिए मज़ा, लेकिन कचरा संग्रह एक अंधेरा कला है। इसे काम नहीं करना है, लेकिन यह दक्षता के साथ काम करने के लिए कि नवीनतम वीएम करते हैं।
हम मल्टी-स्टेज और जादू की बात कर रहे हैं जो आवंटन गति को मॉलोक की तुलना में आवंटन को अधिक तुलनीय बनाता है।
संपूर्ण ईडन अवधारणा चट्टानों।
आप इस्तेमाल तकनीक पर कुछ श्वेतपत्र भी पढ़ सकते हैं।
यहाँ एक लेख एक अच्छा सिंहावलोकन (बस एक त्वरित गूगल/स्कैन से) के लिए लगता है कि
-1: "कचरा संग्रह एक अंधेरा कला है"। क्षमा करें, लेकिन मुझे लगता है कि यह इस तरह के बयान देने के लिए काउंटर-उत्पादक है जब आप कोड की 100 पंक्तियों में एक सभ्य कचरा कलेक्टर लिख सकते हैं। –
@ जोन हैरोप एक साधारण जीसी करना आसान है (वास्तव में मैंने अपने जवाब में क्या कहा), एक अंधेरा कला क्या है जो इसे नए वीएम की दक्षता के साथ काम कर रही है। क्या आप वास्तव में उससे असहमत हैं? क्या आपने देखा है कि नए वीएम क्या करते हैं? –
@ बिल: मैंने इसे ब्लॉग किया: http://flyingfrogblog.blogspot.com/2010/09/are-multicore-capable-garbage.html –
Slava Pestov जो developes Factor programming language एक कचरा कलेक्टर के अपने कार्यान्वयन के बारे में पद दिया जाना लिखा है। आप इस लिंक के साथ इस पर पोस्ट पा सकते हैं:
http://factor-language.blogspot.com/search?q=garbage+collection
रविवार, 24 सितंबर को पद से विशेष प्रारंभ में, 2006
वह लिंक टूट गया। यह शायद http://docs.parrot.org/parrot/latest/html/docs/pdds/pdd09_gc.pod.html होना चाहिए – DarenW
MMTk उच्च प्रदर्शन कचरा कलेक्टरों की एक बड़ी सेट होता है। इसमें शामिल हैं:
- प्रतिलिपि बनाई जा रही कलेक्टरों
- ट्रेसिंग कलेक्टरों
- संदर्भ गिनती कलेक्टरों
यह भी है:
- बंद करो दुनिया कलेक्टरों
- समवर्ती कलेक्टरों
चूंकि यह एक शोध मंच है, इसलिए इसमें generation reference counting collector जैसे कुछ अग्रिम संग्राहक हैं।
- 1. बहु और कचरा संग्रहण
- 2. कचरा संग्रहण गारंटी
- 3. कब कचरा संग्रहण
- 4. लुआ: कचरा संग्रहण + userdata
- 5. मैं जावा कचरा कलेक्टर को कैसे अक्षम कर सकता हूं?
- 6. कचरा संग्रहण प्रदर्शन में सुधार कैसे करें?
- 7. अत्यंत लंबे कचरा संग्रहण बार
- 8. सी # कचरा संग्रहण का संदर्भ
- 9. कचरा संग्रहण तंत्र कैसे काम करता है?
- 10. पृथक चक्रीय संदर्भों के साथ कचरा संग्रहण व्यवहार?
- 11. कचरा संग्रहण जब अंतिम गुमनाम वर्गों
- 12. मैं थोक खोज कैसे कर सकता हूं और पर्ल के साथ प्रतिस्थापित कैसे कर सकता हूं?
- 13. एक नया धागा ऊपर स्पिनिंग - मैं कचरा संग्रहण
- 14. मैं वर्डप्रेस के साथ कस्टम क्वेरी कैसे कर सकता हूं?
- 15. मैं java.util.regex के साथ आंशिक मिलान कैसे कर सकता हूं। *?
- 16. मैं ओएथ एपीआई के साथ लॉगिन कैसे कर सकता हूं?
- 17. मैं इसे MySQL के साथ कैसे कर सकता हूं?
- 18. मैं आरआरडीटोल के साथ डेटा कैसे अपडेट कर सकता हूं?
- 19. मैं PHP के साथ एचटीएमएल कैसे आयात कर सकता हूं?
- 20. मैं SharpSVN के साथ कैसे शुरू कर सकता हूं?
- 21. मैं पर्ल 6 के साथ कैसे शुरू कर सकता हूं?
- 22. मैं एनएचबीर्नेट के साथ कुशलतापूर्वक टीडीडी कैसे कर सकता हूं?
- 23. मैं पर्ल के साथ स्क्रैप कैसे स्क्रीन कर सकता हूं?
- 24. मैं कार्यात्मक प्रोग्रामिंग के साथ कैसे शुरू कर सकता हूं?
- 25. एक अप्रबंधित प्रतिनिधि के लिए कचरा संग्रहण रोकना
- 26. मैं डेटाबेस डिज़ाइन संग्रहण लागत की गणना कैसे कर सकता हूं?
- 27. एक साधारण दुभाषिया के साथ प्रयोग करने के लिए एक सरल कचरा संग्रह एल्गोरिदम क्या है?
- 28. मैं कैसे निर्धारित कर सकता हूं कि एक संकलित उद्देश्य-सी ऐप कचरा संग्रहण का उपयोग कर रहा है या नहीं?
- 29. मैं कैसे फीका कर सकता हूं, परीक्षण बदल सकता हूं और फिर jQuery के साथ साफ-सफाई कर सकता हूं?
- 30. जावा 6 का प्रयोग, लिनक्स पर मैं आईपीवी 4 सॉकेट का उपयोग कैसे कर सकता हूं?
बस को जोड़ने के लिए है कि इस में माना जाता है * पसंद का आप C/C++ एक वीएम उपयोग करने के बजाय भीतर रहने के लिए ... –
+1, मैं इसे अक्सर उपयोग जब मैं अत्यंत कुछ पर काम कर रहा हूँ चाहते हैं * कचरा कलेक्टर जटिल जहां एक डबल फ्री() आपदा का जादू करेगा। –
यह सही है, यह भी जीसी है जिसका उपयोग जीसीसी परियोजना द्वारा किया जा रहा है। – none