2008-10-29 24 views
10

मुझे दिलचस्पी है कि कैसे कचरा संग्रह काम करता है। मैंने पढ़ा है कि मार्क-एंड-स्वीप, स्टॉप-एंड-कॉपी, जेनरेशनल जीसी इत्यादि जैसे कुछ काम ... मैं इनमें से कुछ को लागू करने और उनके व्यवहार की तुलना करने के साथ प्रयोग करना चाहता हूं। अपने आप से प्रयोग शुरू करने का एक अच्छा तरीका क्या है? आदर्श रूप से सी, जावा या पायथन में कुछ (हालांकि अंतिम दो खुद को कचरा इकट्ठा कर रहे हैं, इसलिए ऐसा लगता है कि उन्हें उपयोग करना मुश्किल होगा ...)मैं कचरा संग्रहण के साथ प्रयोग कैसे कर सकता हूं?

उत्तर

14

कभी भी इसके साथ कभी नहीं खेला, लेकिन सी/सी ++ के साथ उपयोग के लिए हमेशा उल्लेख किया जाने वाला वह Hans Boehm's है।

+0

बस को जोड़ने के लिए है कि इस में माना जाता है * पसंद का आप C/C++ एक वीएम उपयोग करने के बजाय भीतर रहने के लिए ... –

+0

+1, मैं इसे अक्सर उपयोग जब मैं अत्यंत कुछ पर काम कर रहा हूँ चाहते हैं * कचरा कलेक्टर जटिल जहां एक डबल फ्री() आपदा का जादू करेगा। –

+0

यह सही है, यह भी जीसी है जिसका उपयोग जीसीसी परियोजना द्वारा किया जा रहा है। – none

0

अपने स्वयं के JVM को लागू करें। कुछ भी नहीं, बस मूल बातें। बहुत सारे कार्यक्रम और कंपाइलर/भाषाएं हैं जो जेवीएम कोड उत्पन्न करती हैं ताकि आपके पास परीक्षण करने के लिए बहुत सारी सामग्री हो।

2

.NET रनटाइम और जावा रनटाइम अब ओपन सोर्स हैं, इसलिए यदि आप वर्तमान समर्थन प्रोग्रामिंग भाषा के साथ खेलना चाहते हैं तो आप रनटाइम के साथ स्वयं प्रयोग कर सकते हैं। हालांकि अगर आप इसे स्वयं करना चाहते हैं तो आपको शायद अपना खुद का रनटाइम बनाना होगा जिसमें इसकी अपनी भाषा हो।

0

साथ खेलने के लिए मज़ा, लेकिन कचरा संग्रह एक अंधेरा कला है। इसे काम नहीं करना है, लेकिन यह दक्षता के साथ काम करने के लिए कि नवीनतम वीएम करते हैं।

हम मल्टी-स्टेज और जादू की बात कर रहे हैं जो आवंटन गति को मॉलोक की तुलना में आवंटन को अधिक तुलनीय बनाता है।

संपूर्ण ईडन अवधारणा चट्टानों।

आप इस्तेमाल तकनीक पर कुछ श्वेतपत्र भी पढ़ सकते हैं।

यहाँ एक लेख एक अच्छा सिंहावलोकन (बस एक त्वरित गूगल/स्कैन से) के लिए लगता है कि

http://www.devx.com/Java/Article/21977/0/page/1

+0

-1: "कचरा संग्रह एक अंधेरा कला है"। क्षमा करें, लेकिन मुझे लगता है कि यह इस तरह के बयान देने के लिए काउंटर-उत्पादक है जब आप कोड की 100 पंक्तियों में एक सभ्य कचरा कलेक्टर लिख सकते हैं। –

+1

@ जोन हैरोप एक साधारण जीसी करना आसान है (वास्तव में मैंने अपने जवाब में क्या कहा), एक अंधेरा कला क्या है जो इसे नए वीएम की दक्षता के साथ काम कर रही है। क्या आप वास्तव में उससे असहमत हैं? क्या आपने देखा है कि नए वीएम क्या करते हैं? –

+0

@ बिल: मैंने इसे ब्लॉग किया: http://flyingfrogblog.blogspot.com/2010/09/are-multicore-capable-garbage.html –

0

Slava Pestov जो developes Factor programming language एक कचरा कलेक्टर के अपने कार्यान्वयन के बारे में पद दिया जाना लिखा है। आप इस लिंक के साथ इस पर पोस्ट पा सकते हैं:

http://factor-language.blogspot.com/search?q=garbage+collection

रविवार, 24 सितंबर को पद से विशेष प्रारंभ में

, 2006

0

MMTk उच्च प्रदर्शन कचरा कलेक्टरों की एक बड़ी सेट होता है। इसमें शामिल हैं:

  • प्रतिलिपि बनाई जा रही कलेक्टरों
  • ट्रेसिंग कलेक्टरों
  • संदर्भ गिनती कलेक्टरों

यह भी है:

  • बंद करो दुनिया कलेक्टरों
  • समवर्ती कलेक्टरों

चूंकि यह एक शोध मंच है, इसलिए इसमें generation reference counting collector जैसे कुछ अग्रिम संग्राहक हैं।

संबंधित मुद्दे