HyperPB: مُحلل Protobuf بسرعة فائقة بلغة Go يتفوّق على UPB

2025-07-24
HyperPB: مُحلل Protobuf  بسرعة فائقة بلغة Go يتفوّق على UPB

يُقدّم هذا المقال HyperPB، وهو مُحلل Protobuf سريع بشكلٍ ملحوظ مكتوب بلغة Go. بناءً على نقاط القوة في UPB (أحد أسرع أوقات تشغيل Protobuf)، يستفيد HyperPB من ABI السجلات في Go ونقص السلوك غير المُعرّف لتحسينات كبيرة. باستخدام JIT و PGO عبر الإنترنت، يفوق أداء Protobuf Go المُولّد ذاتيًا و vtprotobuf في اختبارات المقاييس. جوهره هو مُفسّر مُدار بواسطة الجداول، مُحسّن بتحسينات ذكية مثل تقنيات zero-copy، وتقسيم البيانات الساخنة/الباردة، وإعادة استخدام arena.

اقرأ المزيد
التطوير

جامع القمامة في جو: غوص عميق و مخصص لآلة تخصيص ذاكرة من نوع أرينا

2025-04-21
جامع القمامة في جو: غوص عميق و مخصص لآلة تخصيص ذاكرة من نوع أرينا

تتناول هذه المقالة تعقيدات جامع القمامة في لغة جو، وتستخدم هذه المعرفة لبناء آلة تخصيص ذاكرة من نوع أرينا عالية الأداء. من خلال الاستغلال الذكي لسلوك جامع القمامة في جو، يحقق الكاتب سرعة أكبر في تخصيص الذاكرة مقارنة بآلة تخصيص الذاكرة المدمجة في جو، خاصةً في عمليات التخصيص واسعة النطاق. وتفصل المقالة مبادئ التصميم، والتنفيذ، ونتائج اختبار الأداء لآلة تخصيص الذاكرة من نوع أرينا المخصصة، كما تحلل أداءها في بيئات العمل متعددة العمليات ذات الكثافة العالية.

اقرأ المزيد
التطوير جامع القمامة

الثلاثيات المستهدفة: دليل لفوضى المُجمع

2025-04-15
الثلاثيات المستهدفة: دليل لفوضى المُجمع

تتناول هذه المقالة تعقيدات الثلاثيات المستهدفة للمُجمع، مثل x86_64-unknown-linux-gnu. تشرح مكونات الثلاثي (العمارة، المُورّد، نظام التشغيل، واجهة برمجة التطبيقات الثنائية)، وتُظهر الاختلافات بين طريقة التعامل معها من قِبل GCC و LLVM. تُفصّل المقالة اتفاقيات التسمية لأنواع مختلفة من العمارة (مثل x86 و ARM)، وطريقة تمثيل المُورّد ونظام التشغيل، وتُشدّد على أهمية الاتساق لتجنّب الالتباس. في النهاية، ينصح الكاتب بعدم ابتكار اتفاقيات ثلاثيات مستهدفة جديدة عند إنشاء سلاسل أدوات جديدة، لتسهيل التعاون بين سلاسل الأدوات.

اقرأ المزيد