2011-03-25 12 views
9

किसी के पास सी/सी ++ के लिए लॉक-फ्री मेमोरी आवंटक के साथ कोई अच्छा अनुभव है?सी: लॉक-फ्री मेमोरी आवंटन लाइब्रेरी

मैंने बढ़ावा दिया है, और libcds, लेकिन मुझे यकीन है कि कौन सी लाइब्रेरी का उपयोग करना है।

पृष्ठभूमि, मैं एक शोध किया गया है "ताला मुक्त, रुको मुक्त, गैर-अवरुद्ध, गतिशील बिल्कुल सही हैशिंग, विस्तार, समवर्ती हैश तालिका" * हाँ मुझे पता है कि मिथ्याभिमानी लगता है, लेकिन thats यह क्या कहा जाता है।

वैसे भी, मैं इसे बहु-थ्रेड परीक्षण शुरू करने के लिए तैयार हो रहा हूं, और जब मुझे नए नोड जोड़े जाते हैं, तो मुझे स्मृति आवंटन सेट करने का सबसे अच्छा तरीका पता करने की आवश्यकता होती है। (और जब मुझे पॉइंटर्स के सरणी आवंटित करने की आवश्यकता होती है)

तो क्या किसी को लॉक फ्री मेमोरी आवंटन के साथ कोई अच्छा अनुभव है?

+1

प्रतीक्षा-मुक्त लॉक-फ्री को लागू नहीं करता है, लॉक-फ्री नॉन-अवरुद्ध रूप से लागू होता है, और गैर-अवरुद्ध रूप से समवर्ती समवर्ती? थोड़ा अनावश्यक ... – GManNickG

+0

मुझे पता है, लेकिन मेरे शोध प्रोफेसर सभी बटन शब्दों को हिट करना पसंद करते हैं। –

+3

आप इच्छा सूची से NUMA- जागरूक चूक गए। यदि आप समेकन भी चाहते हैं तो सभी मूल आवंटन कार्यान्वयन NUMA हार्डवेयर पर उचित नहीं होंगे। –

उत्तर

5

सुंदर ग्राफ़ दिखा इस कार्यान्वयन अच्छा है:

http://locklessinc.com/

यह खुला स्रोत जीपीएल 3.0 के बाद से 14 नवंबर 2011 :)

+0

उन्होंने प्रदर्शन बेंचमार्किंग कोड पोस्ट किया, जो अच्छा है, क्योंकि मैं एक बेहतर समय उपकरण में देखना चाहता था, तो मानक समय.h –

+0

@ फ़ेलमैन, आप चार्ट से विकल्पों को देख सकते हैं: Google nee 'jemalloc' से 'tcmalloc' , और glibc का डिफ़ॉल्ट आवंटक जो इन दिनों अविश्वसनीय रूप से अच्छा है। –

+2

और एक बार फिर होर्ड शानदार रूप से विफल रहता है। मैंने देखा है कि यह कई बार पहले से ही सिफारिश की गई है, फिर भी मैं हर एक बेंचमार्क 'जेमलोक' और 'tcmalloc' पर आगे आ गया हूं। –

0

क्यों tbb से संभाजक कोशिश नहीं? यह सुनिश्चित नहीं है कि यह 'लॉक-फ्री' कैसे है, हालांकि मुझे संदेह है कि आपको एक वास्तविक लॉक-फ्री आवंटक * मिलेगा, कम से कम एक जो धागे/कोर (जैसे tcmalloc)

* मैंने वास्तव में एक बनाने की कोशिश की कुछ महीने पहले, लेकिन इसे लॉकलेस बनाने से कम से कम मेरे परिप्रेक्ष्य में कुछ कमी आई है। मैं टीएलएस क्षेत्र की nedmalloc की तरह बहुत उत्सुक नहीं था। मैं एक संकर kinda आवंटक के साथ समाप्त हुआ, जो केवल तभी ताला जब एक खंड-बिन खाली है।

+0

होर्ड का एक संस्करण है जो पूरी तरह से लॉक-फ्री है। –

2

streamflow भी है। मैंने इसे स्वयं नहीं इस्तेमाल किया है; कुछ प्रकाशन पढ़ने के दौरान मैं बस इसमें भाग गया।

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