में बाइनरी सीरियलाइजेशन/डी-सीरियलाइजेशन मैं एक वितरित एप्लिकेशन पर काम कर रहा हूं जिसमें दो घटक हैं। एक मानक सी ++ में लिखा गया है (प्रबंधित सी ++ और लिनक्स प्लेटफॉर्म पर चल रहा है) और दूसरा सी # में लिखा गया है। दोनों एक संदेश बस के माध्यम से संचार कर रहे हैं।सी ++ और सी #
मैं एक स्थिति है जिसमें मैं सी # आवेदन करने के लिए C++ से वस्तुओं उत्तीर्ण करने की आवश्यकता है और इस के लिए मैं सी में उन वस्तुओं ++ क्रमानुसार करने और (.NET में प्रमुखता/बिना marshaling की तरह कुछ) सी # में उन्हें डी-क्रमानुसार की जरूरत है । मुझे बाइनरी में इस धारावाहिकता को निष्पादित करने की आवश्यकता है, न कि एक्सएमएल में (प्रदर्शन कारणों से)।
मैं Boost.Serialization
का इस्तेमाल किया है यह करने के लिए जब दोनों सिरों सी में लागू किया गया ++, लेकिन अब है कि मैं एक छोर पर एक .NET अनुप्रयोग है, Boost.Serialization
एक व्यवहार्य समाधान नहीं है।
मैं ऐसे समाधान की तलाश में हूं जो मुझे सी ++ और .NET सीमा i.e., क्रॉस प्लेटफ़ॉर्म बाइनरी क्रमबद्धता पर (डी) क्रमबद्ध करने की अनुमति देता है।
मुझे पता है कि मैं एक सी ++ डीएल में (डी) क्रमबद्धता कोड लागू कर सकता हूं और .NET अनुप्रयोग में P/Invoke
का उपयोग कर सकता हूं, लेकिन मैं इसे अंतिम उपाय के रूप में रखना चाहता हूं।
इसके अलावा, मैं जानना चाहता हूं कि मैं कुछ मानक जैसे gzip का उपयोग करता हूं, क्या यह कुशल होगा? क्या gzip के लिए कोई अन्य विकल्प हैं? उनमें से पेशेवर/विपक्ष क्या हैं?
धन्यवाद
मेरा सबसे अच्छा सुझाव यह नहीं करना है। अपने डेटा को स्थानांतरित करने के लिए जेसन, एक्सएमएल या कुछ और का प्रयोग करें। कार्यान्वित करें कि FIRST, यदि यह बहुत धीमा हो जाता है तो विश्लेषण करें कि समय क्या ले रहा है ... – Cine
मैंने एक्सएमएल सीरियलाइजेशन के साथ शुरुआत की और बाइनरी सीरियलाइजेशन की तुलना में यह धीमा साबित हुआ (दोनों सिरों को सी ++ एप्लिकेशन चला रहा है)। यही कारण है कि मैंने बूस्ट को चुना। सरलीकरण पहली जगह पर। –
क्या आपने एक साधारण COM अनुप्रयोग, सी ++ और विकसित करने पर विचार किया है।जहां तक मुझे पता है एनईटी COM प्रौद्योगिकी का समर्थन करता है। –