سؤال

أنا حاليا باستخدام ثنائي المنسق (عن بعد) تسلسل إلغاء تسلسل الكائنات إرسال حول LAN.

لقد رفعت مؤخرا من 2.0 .NET framework 3.5.وقد 3.5 قدم أي أنواع جديدة لتحسين التسلسل الأداء ؟

لقد بحثت في DataContractSerializer, لكن هذا يسلسل أي شيء الكامنة XML حق ... والتي يجب زيادة الذاكرة.

ما أسرع مسلسل إرسال الكائنات عبر الشبكة المحلية ؟ أنا لا أهتم حول إمكانية التشغيل المتداخل أو الإصدارات ....أحتاج السرعة!

انا منفتح على طرف ثالث مفتوحة المصدر البدائل.

هل كانت مفيدة؟

المحلول

وهذا يبدو وكأنه المخازن بروتوكول قد يكون ما كنت تبحث عنه.

وهناك ثلاثة تطبيقات .NET الذي أنا على علم: protobuf صافي ، protobuf-CSHARP الميناء و <لأ href = "HTTP: / /code.google.com/p/protosharp/ "يختلط =" noreferrer "> بروتو # .

مقارنات الأداء تبين أن بروتوكول المخازن يتفوق المدمج في serializers سواء من حيث حجم وسرعة التسلسل / إلغاء التسلسل.

نصائح أخرى

لدي بعض المرجعية الرائدة .صافي serializers المتاحة على أساس البيانات Northwind.

@marcgravell الثنائية protobuf-net هو أسرع تطبيقات قياس ذلك عن 7x أسرع من مايكروسوفت أسرع مسلسل المتاحة (XML DataContractSerializer) في BCL.

مايكروسوفت JsonDataContractSerializer هي بطيئة جدا - أكثر 9x أبطأ هذا protobuf-net و أكثر 3.6 x أبطأ من بلدي JsonSerializer.

مقارنة الأداء تربطهاLuke، لاحظ أن DataContractJsonSerializer ينفذ مقارنة جيدا إلى serializers MS الأخرى.

ونظرا لانتشار وJSON، وسهولة والتي يمكنك استخدامها DataContractJsonSerializer، وأنا لا أرى سببا كبيرا لاستخدام "مخازن البروتوكول". سوف يكون من الأسهل JSON لتصحيح عندما كذاب بين اللغات والمنصات، وسوف ضغط جميل.

و(كيف أحب يأخذ جوجل CS 101 المفاهيم ويصبح الشهيرة لتنفيذها. وفي C، نسميه "عازلة بروتوكول" "بنية" ليالي، وهي العمل العظيم.)

وكما هو موضح في هذه الإجابة الشفرة التي تم إنشاؤها قد يكون أسرع مسلسل. ومع ذلك فإنه في مرحلة مبكرة والتي لا تزال تفتقر عددا من الميزات التي توفرها serializers أخرى.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top