يحتوي المشروع على اسم قصير Protobuf-delphi وقام بنقل جزء من رمز المشروع من مخازن المؤسسات البروتوكول لـ Java. في ذلك الوقت ، بدا لي هذا المشروع أكثر وضوحًا وأنظف مقارنة بالتطبيقات الأخرى.
مشروع لتحليل وتوليد الكود قيد الإنشاء. الآن انتقلنا إلى مرحلة توليد الكود. يمكنك إرسال عينات الرمز ورؤيتك. من المؤكد أنه سيتم النظر في التمنيات والترحيب.
عندما قامت Google بتحميل الكود المصدري لمؤسسة البروتوكول لفتح المصدر. لقد اندهشت من الأفكار التي تقف وراءها ، وضغط البيانات وكفاءتها ، وسرعة معالجتها ، خاصة مقارنة بـ XML.
تم إعداد الإصدار الأول من الميناء على Delphi في عام 2007 ، خلال المشروع في وظيفتي الرئيسية. اضطررت إلى نقل جدول كبير يحتوي على بيانات إلى تطبيق العميل. كانت هذه العملية بطيئة. كانت المهمة لزيادة سرعة العمل بطريقة ما. وتقليل مقدار حركة المرور المرسلة من الخادم إلى تطبيق العميل عبر HTTPS. قبل ذلك ، تم استخدام XML لأغراض نفسها.
بعد الانتقال إلى تنسيق بيانات المخازن المؤقتة للبروتوكول ، أصبح من الممكن تنزيل المزيد من البيانات وزيادة الإنتاجية بشكل كبير.
بسرعة كبيرة ، تم إجراء منفذ على دلفي ، محدود في الوظائف. تم تنفيذ تجريدات البروتوكول منخفض المستوى ، ولم يكن هناك توليد رمز. لكن هذا لم يمنعنا من استخدامه في خدمات الويب ، وكانت الوظيفة التي تم تنفيذها كافية للمشروع.
معرفة بنية الرسالة ، كان من الممكن إرسال واستقبال البيانات على هذا البروتوكول. بعد عام وضعت الرمز على الموقع https://sourceforge.net/p/protobuf-delphi.
ربما سيجد الكثير من الناس أنه من المثير للاهتمام استخدام التخزين على كل من القرص وداخل البرنامج.
إذا كنت تعرف ميزات التخزين الفعلي للبيانات في المخزن المؤقت للبروتوكول ، فيمكنك القيام بأشياء مثيرة للاهتمام.
في بداية السجل ، يوجد حقل يخزن طول السجل. يمكنك أيضًا تخطي حقول التسجيلات غير الضرورية دائمًا. اعتمادًا على النوع ، لديهم إما طول ثابت أو إذا كان للحقل طول متغير ، فإن بداية الحقل سوف تحتوي على طول هذا الحقل. لذلك من السهل فصل السجلات عن بعضها البعض ، وأحيانًا قد يكون من المفيد تخطي الجزء غير الضروري من السجل.
يمكن فهرسة البيانات الموجودة في الشجرة بواسطة بنية B-Tree أو HashMap ، على سبيل المثال. يتيح لك ذلك الحصول على وصول عشوائي سريع إلى السجل الذي تبحث عنه بواسطة المفتاح.
يمكن تطبيق عملية القراءة على سجل واحد معبأة.
البيانات في هذا التنسيق لها ضغط كبير. بالمقارنة مع التخزين المعتاد للكائنات في الذاكرة:
في مشروعنا ، قمنا بحفظ الكثير من استهلاك الذاكرة. مقارنة بتخزين الأشياء العادية. في بعض الحالات ، كان الربح 20 مرة أو أكثر ودون فقدان سرعة الوصول إلى البيانات. هذا مفيد بشكل خاص إذا كانت البيانات غير قابلة للتغيير.
يتم استخدام تنسيقات مماثلة لتخزين البيانات المادية في DBMs الصناعية.
وهذا هو ، في أيد ماهرة ، تنسيق البيانات هذا شيء قوي.
بالمناسبة ، بالطبع ، ليس كل شيء في هذا التنسيق هو اختراع Google. بدلا من ذلك ، تم اختراع القليل من قبل Google.
تنمو أرجل IMHO من تنسيق ASN.1. عندما رأيت توثيق هذا التنسيق ، اندهشت مدى تطابقهم.
أهم ميزة من Google في الترويج لتنسيق البيانات هذا وفي نشر الكود المصدر في المصدر المفتوح.
ASN.1 متشابه في الغرض والاستخدام في المخازن المؤقتة للبروتوكول وتوفير Apache ، والتي هي أيضًا لغات الواجهة لتسلسل البيانات عبر المنصات. مثل تلك اللغات ، فإنه يحتوي على مخطط (في ASN.1 ، يسمى "الوحدة النمطية") ، ومجموعة من الترميزات ، وعادة ما تكون ترميزات ذات قيمة طويلة. ومع ذلك ، ASN.1 ، المحددة في عام 1984 ، يسبقهم منذ سنوات عديدة. ويتضمن أيضًا مجموعة واسعة من أنواع البيانات الأساسية ، بعضها قديم ، ولديه المزيد من الخيارات للتمديد. يمكن أن تتضمن رسالة ASN.1 واحدة بيانات من وحدات متعددة محددة في معايير متعددة ، وحتى المعايير المحددة على بعد سنوات.