প্রোটোকল বাফার্স বনাম জেএসএন বা বিএসএন [বন্ধ]


90

প্রোটোকল বাফার্স বনাম বিএসএন (বাইনারি জেএসএন) বা জেসস বনাম জেসন এর কার্যকারিতা বৈশিষ্ট্য সম্পর্কে কারও কাছে কোনও তথ্য আছে?

  • তারের আকার
  • ক্রমিকায়নের গতি
  • Deserialization গতি

এগুলি HTTP- র ব্যবহারের জন্য ভাল বাইনারি প্রোটোকলের মতো মনে হয়। আমি কেবল ভাবছি যে সি # পরিবেশের জন্য দীর্ঘমেয়াদে আরও ভাল।

এখানে কিছু তথ্য আমি যেসব পড়া হয়েছিল BSON এবং প্রোটোকল বাফার


কিছু যুক্তি দেয় (আমি মনে করি এটিতে প্রাক্তন প্রোটোবুফ লেখক অন্তর্ভুক্ত রয়েছে) যে বৃহত তবে সস্তা বিন্যাসটি সিরিয়ালায়িত করার জন্য এবং তারপরে দ্রুত স্ট্যান্ডার্ড সংকোচকারী দিয়ে আউটপুট সংকোচন করা ভাল ধারণা।
কোডসইনচাউস


আমি মনে করি না যতক্ষণ না প্রশ্নে নিজেই একটি নির্দিষ্ট তুলনা পদ্ধতি প্রস্তাবিত হয় (অন্যথায় এটি বরং
মতামতপূর্ণ

উত্তর:


65

থ্রিফট হ'ল আরেকটি প্রোটোকল বাফার-জাতীয় বিকল্প।

এই প্রযুক্তিগুলির সিরিয়ালাইজেশন / ডিসরিয়ালাইজেশন এবং তারের আকার সম্পর্কে জাভা সম্প্রদায়ের কাছ থেকে ভাল মানদণ্ড রয়েছে: https://github.com/eishay/jvm-serialization/wiki

সাধারণভাবে, জেএসএনের কিছুটা বড় তারের আকার এবং কিছুটা খারাপ ডিএসার রয়েছে তবে সর্বব্যাপী হয়ে জয়ী হয় এবং উত্স আইডিএল ছাড়াই এটি সহজে ব্যাখ্যা করার ক্ষমতা অর্জন করে। শেষ পয়েন্টটি এমন কিছু যা সমাধান করার চেষ্টা করছে অ্যাপাচি অভ্র এবং পারফরম্যান্সের ক্ষেত্রে এটি উভয়কেই পরাজিত করে।

মাইক্রোসফ্ট একটি সি # নুগেট প্যাকেজ প্রকাশ করেছে মাইক্রোসফ্ট.হাদোপ.আভ্রো


4
ছোট বার্তার আকার স্বয়ংক্রিয়ভাবে দ্রুত পারফরমেন্সে অনুবাদ করে না, এই নিবন্ধটি দেখুন soa.sys-con.com/node/250512
vtd-xML-লেখক

4
ভাল লিঙ্ক; আমি কেবলমাত্র অভ্র সম্পর্কে মন্তব্য সম্পর্কে নিশ্চিত নই - যদিও এটি তার মূল ব্যবহারের ক্ষেত্রে (একই রকম ডেটা এন্ট্রি প্রচুর পরিমাণে) আরও দক্ষতার সাথে কাজ করতে পারে, তবে এই বেঞ্চমার্কে এটি খুব দ্রুত সঞ্চালিত হবে বলে মনে হয় না (যা কোনটির হ্যান্ডলিংয়ের পরীক্ষা করে একক অনুরোধ)
StaxMan

কোডেক, মোডেম .... আমি "এসডিস" আরও ভাল পছন্দ করি :)
নওফাল

75

এই পোস্টটি JSON, BSON এবং XML সহ .NET- এ সিরিয়ালাইজেশন গতি এবং মাপের তুলনা করে।

বিকল্প পাঠ

বিকল্প পাঠ

http://james.newtonking.com/archive/2010/01/01/net-serialization-performance-compistance.aspx


9
এই উত্তরে প্রোটোকল বাফার সম্পর্কিত কোনও তথ্য নেই।
ভিক্টর ইয়ারেমা

52

জনপ্রিয় কিছু নেট নেট সিরিয়ালাইজারদের কর্মক্ষমতা দেখানোর জন্য সাম্প্রতিক কয়েকটি মানদণ্ড এখানে দেওয়া হল ।

বার্নিং ভিক্ষু benchmarks একটি সহজ Poco serializing কর্মক্ষমতা দেন থাকাকালীন ব্যাপক Northwind benchmarks Microsoft এর Northwind ডেটাসেটের যে টেবিলে একটি সারিতে serializing সম্মিলিত ফলাফল দেখান।

এখানে চিত্র বর্ণনা লিখুন

মূলত প্রোটোকল বাফার ( প্রোটোবুফ-নেট ) । নেট (এক্সএমএল ডেটা কন্ট্র্যাক্টসরিয়ালাইজার) -এর দ্রুততম বেস শ্রেণীর পাঠাগার সিরিয়ালাইজারের চেয়ে প্রায় 7x দ্রুত er এটি প্রতিযোগিতার চেয়েও ছোট কারণ এটি মাইক্রোসফ্টসের সর্বাধিক কমপ্যাক্ট সিরিয়ালাইজেশনের ফর্ম্যাট (জসনডাটা কন্ট্র্যাক্ট সিরিয়ালাইজার) এর চেয়েও 2.2x ছোট।

ServiceStack এর টেক্সট serializers বাইনারি protobuf-নেট কর্মক্ষমতা মিলে যেখানে তার নিকটস্থ হয় JSON Serializer শুধুমাত্র 2.58x ধীর protobuf-নেট থাকে।


4
দুর্দান্ত পোস্ট - তবে যদি সম্ভব হয় তবে গড় হিসাবে দেখানোর সময় আপনার বারের চার্টে সর্বদা ত্রুটি বারগুলি রাখা উচিত।
jtromans

জেআইএল পরীক্ষাগুলিতে কেন অন্তর্ভুক্ত হয় না? (কেন আপনার কোনও ধারণা আছে?)
রই নমির

23

প্রোটোকল বাফারগুলি তারের জন্য ডিজাইন করা হয়েছে:

  1. খুব ছোট বার্তার আকার - একটি দিক হ'ল দক্ষ দক্ষ আকারের পূর্ণসংখ্যার উপস্থাপনা।
  2. খুব দ্রুত ডিকোডিং - এটি একটি বাইনারি প্রোটোকল।
  3. প্রোটোবুফ বার্তাগুলি এনকোডিং এবং ডিকোড করার জন্য দুর্দান্ত দক্ষ সি ++ উত্পন্ন করে - ইঙ্গিত: আপনি যদি সমস্ত ভার্জিয়র বা স্ট্যাটিক আকারের আইটেমগুলিতে এটি এনকোড করেন তবে এটি ডিটারমিনিটিক গতিতে এনকোড এবং ডিকোড হবে।
  4. এটি একটি খুব সমৃদ্ধ ডেটা মডেল সরবরাহ করে - খুব জটিল ডেটা স্ট্রাকচারকে দক্ষতার সাথে এনকোড করে।

JSON কেবল পাঠ্য এবং এটি বিশ্লেষণ করা দরকার । ইঙ্গিত: এর মধ্যে একটি "বিলিয়ন" ইনকোডিং করতে যথেষ্ট অক্ষর লাগে: বিলিয়ন = 12 চরের (দীর্ঘ স্কেল), বাইনারি এটি একটি uint32_t ফিট করে এখন ডাবল এনকোড করার চেষ্টা সম্পর্কে কী? এটি আরও সুদূর খারাপ হবে।


4
তবে, উত্তরাধিকার পরিচালনা না করার পরিবর্তে দুর্ভাগ্যজনক দিক রয়েছে এবং রচনাটি বৈধ বিকল্প হলেও, আমি আমার ডেটা ট্রান্সফার অবজেক্টটি উত্তরাধিকারের পরিবর্তে রচনাটি ব্যবহার করতে বাধ্য না হওয়া পছন্দ করি।
মার্ক সবুজ

4
আমি বিশ্বাস করি এক্সটেনশানগুলি খুব উত্তরাধিকার ... অনুরূপ একটি উপায় ব্যবহার করা যেতে পারে developers.google.com/protocol-buffers/docs/reference/...
kralyk

4
হ্যাঁ, এক্সটেনশনগুলি খুব ভাল পয়েন্ট। আমি প্রতিদিন কাজে অনুশীলনে এটি ব্যবহার করি।
ইয়াংভে স্নিন লিন্ডাল

"প্রোটোকল বাফারগুলি তারের জন্য ডিজাইন করা হয়েছে" "তারটি" কী?
মার্কোস পেরেইরা

@marcospgp এর the wireঅর্থ কেবল নেটওয়ার্ক। এখন আমরা যখন অনেকগুলি ওয়্যারলেস নেটওয়ার্ক ব্যবহার করি তখন এটি অদ্ভুত শোনায়।
ভিক্টর ইয়ারেমা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.