গুগলের প্রোটোকল বাফার্স বনাম অ্যাপাচি থ্রিফ্টের সবচেয়ে বড় সুবিধা এবং বিভক্তিগুলি কী কী ?
গুগলের প্রোটোকল বাফার্স বনাম অ্যাপাচি থ্রিফ্টের সবচেয়ে বড় সুবিধা এবং বিভক্তিগুলি কী কী ?
উত্তর:
তারা উভয় একই বৈশিষ্ট্য অনেক প্রস্তাব; যাইহোক, কিছু পার্থক্য আছে:
Set
টাইপ রয়েছেমূলত, তারা মোটামুটি সমতুল্য (প্রোটোকল বাফারগুলির সাথে আমি যা পড়েছি তার থেকে কিছুটা দক্ষ)।
map
এছাড়াও
আর একটি গুরুত্বপূর্ণ পার্থক্য হ'ল ডিফল্ট দ্বারা সমর্থিত ভাষা।
উভয়ই অন্য প্ল্যাটফর্মগুলিতে প্রসারিত হতে পারে, তবে এগুলি বাক্সের বাইরে উপলভ্য ভাষাগুলির বাইন্ডিং।
আরপিসি আরেকটি মূল পার্থক্য। থ্রিফ্ট আরপিসি ক্লায়েন্ট এবং সার্ভার্স চাকাগুলি বাস্তবায়নের জন্য কোড উত্পন্ন করে প্রোটোকল বাফারগুলি বেশিরভাগই কেবল ডেটা-ইন্টারচেঞ্জ ফর্ম্যাট হিসাবে ডিজাইন করে।
option optimize_for = SPEED
।পার্থক্যগুলি ঘনিষ্ঠভাবে দেখার জন্য, এই ওপেন সোর্স প্রকল্পে উত্স কোডটি আলাদা করে দেখুন ।
আমি যেমন "থ্রিফট বনাম প্রোটোকল বাফার" বিষয় হিসাবে বলেছি :
থ্রিফট বনাম প্রোটোবুফ বনাম জেএসএন তুলনা উল্লেখ করে :
অতিরিক্তভাবে, সেই সমাধানগুলির জন্য প্রচুর আকর্ষণীয় অতিরিক্ত সরঞ্জাম উপলব্ধ রয়েছে, যা সিদ্ধান্ত নিতে পারে। এখানে প্রোটোবুফের উদাহরণ রয়েছে: প্রোটোবুফ-ওয়্যারশার্ক , প্রোটোবুফিডিটার ।
প্রোটোকল বাফারগুলির আরও কমপ্যাক্ট উপস্থাপনা রয়েছে বলে মনে হয় তবে থ্রাইফট হোয়াইটপেপার পড়ে আমি কেবল এটিই অনুভব করি। তাদের নিজস্ব কথায়:
কোডের সরলতা এবং স্পষ্টতার স্বার্থে আমরা কয়েকটি চরম স্টোরেজ অপ্টিমাইজেশনের বিরুদ্ধে সিদ্ধান্ত নিয়েছি (যেমন, ASCII এ ছোট পূর্ণসংখ্যার প্যাকিং বা একটি 7-বিট ধারাবাহিকতা ফর্ম্যাট ব্যবহার করে)। এই পরিবর্তনগুলি সহজেই তৈরি করা যেতে পারে যদি এবং যখন আমরা কোনও পারফরম্যান্স-সমালোচনামূলক ব্যবহারের মুখোমুখি হই যা তাদের দাবি করে।
এছাড়াও, এটি কেবল আমার ধারণা হতে পারে, তবে প্রোটোকল বাফারদের স্ট্রাক্ট ভার্সনটির আশেপাশে আরও ঘন বিমূর্ততা রয়েছে বলে মনে হয়। থ্রাইফ্টের কিছু সংস্করণ সমর্থন রয়েছে তবে এটি ঘটতে কিছুটা প্রচেষ্টা নেওয়া দরকার takes
পাইথনের প্রোটোবফের তুলনায় আমি একটি পাঠ্য ভিত্তিক প্রোটোকল দিয়ে আরও ভাল অভিনয় করতে সক্ষম হয়েছি। তবে কোনও প্রকারের চেকিং বা অন্যান্য অভিনব utf8 রূপান্তর ইত্যাদি নেই ... যা প্রোটবফ অফার করে।
সুতরাং, যদি সিরিয়ালাইজেশন / ডিসিরিয়ালাইজেশন আপনার যা দরকার তা হয় তবে আপনি সম্ভবত অন্য কিছু ব্যবহার করতে পারেন।
http://dhruvbird.blogspot.com/2010/05/protocol-buffers-vs-http.html
একটি সুস্পষ্ট বিষয় যা এখনও উল্লেখ করা হয়নি তা হ'ল এটি একটি প্রো বা কন উভয় হতে পারে (এবং উভয়ের জন্য একই) তারা বাইনারি প্রোটোকল। এটি আরও কমপ্যাক্ট উপস্থাপনা এবং সম্ভবত আরও বেশি পারফরম্যান্স (পেশাদারদের) জন্য অনুমতি দেয় তবে হ্রাসযোগ্য পাঠযোগ্যতার (বা বরং, ডিবাজিবিলিটি) সাথে, একটি কন।
এছাড়াও, এক্সএমএল (এবং এমনকি জেএসসন) এর মতো স্ট্যান্ডার্ড ফর্ম্যাটগুলির তুলনায় উভয়েরই কিছুটা কম সরঞ্জাম সমর্থন রয়েছে।
(সম্পাদনা) এখানে একটি আকর্ষণীয় তুলনা যা আকার এবং পারফরম্যান্স উভয়ই পার্থক্যকে মোকাবেলা করে এবং কিছু অন্যান্য ফর্ম্যাটের (xML, json) সংখ্যারও অন্তর্ভুক্ত করে।
এবং উইকি অনুসারে থ্রিফ্ট রানটাইম উইন্ডোজে চলে না।
প্রোটোকল বাফার দ্রুত ST
এখানে একটি দুর্দান্ত মাপদণ্ড রয়েছে:
http://code.google.com/p/thrift-protobuf-compare/wiki/Benchmarking
আপনি অভ্রকেও দেখতে চাইতে পারেন, যেমন অভ্র আরও দ্রুত look
মাইক্রোসফ্টের এখানে একটি প্যাকেজ রয়েছে: http://www.nuget.org/packages/Mic Microsoft.Hadoop.Avro
যাইহোক, আমি এখন পর্যন্ত সবচেয়ে দ্রুত দেখেছি ক্যাপ'নপ্রোটো ;
এসি # বাস্তবায়ন মার্ক গ্রাভেলের গিথুব-সংগ্রহস্থলটিতে পাওয়া যাবে ।
আমি মনে করি এই পয়েন্টগুলির মধ্যে বেশিরভাগটি মৌলিক সত্যটি মিস করেছে যে থ্রাইফ্ট একটি আরপিসি কাঠামো, যা বিভিন্ন পদ্ধতি (বাইনারি, এক্সএমএল, ইত্যাদি) ব্যবহার করে ডেটা সিরিয়াল করার ক্ষমতা রাখে।
প্রোটোকল বাফারগুলি সম্পূর্ণরূপে সিরিয়ালকরণের জন্য ডিজাইন করা হয়েছে, এটি থ্রাইফ্টের মতো কাঠামো নয়।
একটির জন্য, প্রোটোবফ একটি সম্পূর্ণ আরপিসি বাস্তবায়ন নয়। এটির সাথে যেতে জিআরপিসির মতো কিছু দরকার।
থ্রিফ্টের তুলনায় জিপিআরসি খুব ধীর:
এখানে কিছু দুর্দান্ত পয়েন্ট রয়েছে এবং আমি যদি এখানে কারও পথ অতিক্রম করি তবে আমি আরও একটি যুক্ত করতে যাচ্ছি।
থ্রাইফ্ট আপনাকে থ্রাইফ্ট-বাইনারি এবং থ্রাইফ্ট-কমপ্যাক্ট (ডি) সিরিয়ালাইজের মধ্যে বেছে নেওয়ার একটি বিকল্প দেয়, থ্রিফ্ট-বাইনারিটির একটি দুর্দান্ত পারফরম্যান্স তবে বড় প্যাকেটের আকার হবে, যখন থ্রিফ্ট-কমপ্যাক্ট আপনাকে ভাল সংকোচনতা দেবে তবে আরও প্রসেসিং পাওয়ার প্রয়োজন। এটি সুবিধাজনক কারণ আপনি সর্বদা কোডের একটি লাইন পরিবর্তন করার মতো সহজেই এই দুটি মোডের মধ্যে স্যুইচ করতে পারেন (হেক, এমনকি এটি কনফিগারযোগ্যও তৈরি করতে পারেন)। সুতরাং আপনি যদি নিশ্চিত না হন যে আপনার অ্যাপ্লিকেশনটি প্যাকেটের আকার বা প্রক্রিয়াকরণ শক্তিতে কতটা অনুকূলিত করা উচিত, তবে বিকাশ একটি আকর্ষণীয় পছন্দ হতে পারে।
পিএস: এই দুর্দান্ত বেঞ্চমার্ক প্রকল্পটি দেখুন thekvs
যার মাধ্যমে থ্রাইফ্ট-বাইনারি, থ্রিফ্ট-কমপ্যাক্ট এবং প্রোটোবফ সহ অনেক সিরিয়ালাইজরের তুলনা করা হয়েছে: https://github.com/thetvs/cpp-serializer
পিএস: নামের আরেকটি সিরিয়ালাইজার রয়েছে YAS
যা এই বিকল্পটিও দেয় তবে এটি উপরের লিঙ্কটি স্কিমা-কম দেখায়।
এটিও লক্ষণীয় যে সমস্ত সমর্থিত ভাষা ধারাবাহিকভাবে বিকাশ বা প্রোটোবুফের সাথে তুলনা করে না। এই মুহুর্তে এটি অন্তর্নিহিত সিরিয়ালাইজেশন ছাড়াও মডিউলগুলি প্রয়োগের বিষয়। আপনি যে কোনও ভাষা ব্যবহারের পরিকল্পনা করছেন তার জন্য বেঞ্চমার্কগুলি পরীক্ষা করার জন্য যত্ন নিন।