क्या किसी को अंतर-थ्रेड संचार के लिए जीएलआईबी के GAsyncQueue बनाम POSIX message_queue के सापेक्ष प्रदर्शन का कोई विचार है? मेरे पास लिनक्स के शीर्ष पर सी में लागू होने के लिए कई छोटे संदेश (एक तरफ और अनुरोध-प्रतिक्रिया प्रकार) होंगे (अभी के लिए; बाद में विंडोज़ को पोर्ट किया जा सकता है)। मैं यह तय करने की कोशिश कर रहा हूं कि किस का उपयोग करना है।जीएलआईबी के GAsyncQueue बनाम POSIX message_queue
मुझे जो पता चला है वह है कि जीएलआईबी का उपयोग पोर्टेबिलिटी उद्देश्यों के लिए बेहतर है, लेकिन पॉज़िक्स एमक के पास उन पर चयन या मतदान करने में सक्षम होने का लाभ है।
हालांकि, मुझे कोई जानकारी नहीं मिली है जिसके प्रदर्शन बेहतर है।
बहुत रोचक। मैंने आपका उत्तर और प्रश्न उठा लिया है, शायद यह आपको ग्राफ पोस्ट करने देगा। – kalev
मैंने कुछ और प्रयोग चलाए: उपभोक्ताओं को यह जानने के लिए धागे के बीच जोड़ा गया संकेत कि डेटा तैयार किया गया है। मैंने eventfd लिनक्स तकनीक का उपयोग किया। और जैसे ही मैंने ऐसा किया, मैंने देखा कि GAsyncQueue का प्रदर्शन दूसरों के समान होना चाहिए। – dbikash
क्या यह परिणाम स्पष्टीकरण देता है? यह कि सभी लिनक्स आईपीसी तंत्र कर्नेल के माध्यम से जाते हैं और इसलिए समान प्रदर्शन होता है। GAsyncQueue किसी भी तरह उपयोगकर्ता-स्थान कार्यान्वयन है - अतिरिक्त उपयोगकर्ता स्थान - कर्नेल स्पेस कॉपी से बचा जाता है, जिसके परिणामस्वरूप बेहतर प्रदर्शन होता है। और जैसे ही eventfd तंत्र जोड़ा जाता है, फिर कर्नेल तस्वीर में आता है। क्या यह समझ सही है? – dbikash