मुझे कुछ तेज़, थ्रेड सुरक्षित मेमोरी पूलिंग लाइब्रेरी की आवश्यकता है। मैंने बहुत कुछ किया है, लेकिन तेज समाधानों में थ्रेड सुरक्षा नहीं है, जबकि अन्य वास्तव में बड़े हैं।सी: मेमोरी पूल पुस्तकालय?
कोई सुझाव?
मुझे कुछ तेज़, थ्रेड सुरक्षित मेमोरी पूलिंग लाइब्रेरी की आवश्यकता है। मैंने बहुत कुछ किया है, लेकिन तेज समाधानों में थ्रेड सुरक्षा नहीं है, जबकि अन्य वास्तव में बड़े हैं।सी: मेमोरी पूल पुस्तकालय?
कोई सुझाव?
दोनों nedmalloc और ptmalloc देखें सी आधारित धागा कैशिंग स्मृति प्रबंधकों, डौग ली के malloc (सबसे linux allocators की कोर) के आसपास आधारित है। वे दोनों अच्छे लाइसेंस के तहत भी हैं, होर्ड के विपरीत, जिसके लिए वाणिज्यिक उपयोग के लिए भुगतान की आवश्यकता है, आखिरकार मैंने देखा। गूगल्स टीसीएमएलओसी में सी बाइंडिंग्स आईआईआरसी भी है, और इसे ग्राउंड अप से थ्रेड कैशिंग आवंटक के रूप में बनाया गया है, साथ ही कुछ हीप और सीपीयू प्रोफाइलिंग टूल में बनाया गया है, हालांकि यह बड़े पैमाने पर मेमोरी उपयोग के लिए बनाया गया है (उदाहरण वे 300 एमबी + प्रति थ्रेड), और ऐसे कई काम नहीं करते हैं, साथ ही साथ छोटे पैमाने पर ऐप्स
धन्यवाद! nedmalloc वही है जो मैं खोज रहा था। – Daniel
अच्छी तरह से काम करता है और यह सब बड़ा नहीं होना चाहिए।
मैंने एपीआर को पहले दृष्टिकोण के रूप में आजमाया है और यह वास्तव में बड़ा है + बहुत अधिक एपीआई है जिसका मैं उपयोग नहीं करूँगा। – Daniel
आपको प्रति थ्रेड एक मेमोरी पूल का उपयोग करना होगा।
ध्यान दें कि यह मदद कर सकता है, फिर भी ऐसे थ्रेडिंग मुद्दे हैं जिन पर ध्यान देने की आवश्यकता है - जबकि आप यह सुनिश्चित कर सकते हैं कि किसी विशेष थ्रेड से आवंटन किसी विशेष पूल को निर्देशित किया जा सके, आपको किसी भी पूल के लिए किसी भी पूल के लिए ब्लॉक को खाली करने के लिए तैयार रहना होगा धागा। –
मुझे प्रत्येक थ्रेड के लिए अलग मेमोरी पूल का उपयोग क्यों करना चाहिए? – Daniel
यह एक थ्रेड एरिया भी अपने फ्री स्टोर में सैकड़ों मेगाहर्ट्ज मेमोरी को आरक्षित कर सकता है, जो अन्य थ्रेड एरिया को भूखा कर रहा है, जिसे वास्तव में मेमोरी आवंटित करने की आवश्यकता है – Necrolis
क्यों नहीं malloc()? यह बहुत धीमी है? क्या आपने कुछ प्रति थ्रेड पूल की कोशिश की? यह तेज़ है, लेकिन कुछ स्मृति बर्बाद करें। –
मेरे पास छोटे भाग (<500b) के साथ प्रति सेकंड मॉलोक/फ्री प्रति सेकंड हैं, इसलिए हाँ, बस मुफ्त/मॉलोक वास्तव में धीमे हैं। मैं कुछ थ्रेड सुरक्षित समाधान भी प्राप्त करना चाहता हूं इसलिए धागे में पूल प्रबंधन के बारे में मुझे सिरदर्द नहीं होगा। – Daniel
क्षेत्र मेमोरी प्रबंधन पर भी विचार करें। यदि यह आपके लिए उपयुक्त है तो यह कई गुना तेज होगा। – Joshua