تحسين بروتوكولات قواعد البيانات: منظور تجربة المطور

2025-04-05

تتناول هذه المقالة أوجه القصور في بروتوكولات عملاء قواعد بيانات SQL، وتحديدًا MySQL وPostgreSQL. ويشير الكاتب إلى مشكلات في إدارة الاتصال، واستعادة الأخطاء، والتعليمات المُعدّة، مما يؤدي إلى زيادة تعقيد التطوير. على سبيل المثال، تجعل حالة الاتصال المتغيرة استعادة الأخطاء صعبة، بينما يحدّ طابع الجلسة في التعليمات المُعدّة من استخدامها في مجموعات الاتصال. يقترح الكاتب تحسينات مستوحاة من بروتوكول Redis، مثل مرحلة تكوين صريحة، ومفاتيح الاستبدال، ومعرّفات تعليمات مُعدّة ذات نطاق عالمي. ستُبسّط هذه التغييرات سير عمل التطوير، وستُحسّن من موثوقية عملاء قواعد البيانات، مما ينتج عنه تجربة مُطوّر أفضل وقواعد بيانات أكثر سهولة في الاستخدام.

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

HTTP/2: لماذا لا يهم في خوادم HTTP Ruby

2025-02-25

تتناول هذه المشاركة أهمية دعم HTTP/2 في خوادم HTTP Ruby مثل Puma. يُجادل الكاتب بأن الميزة الرئيسية لـ HTTP/2 - وهي تعدد الإرسال لتحقيق أوقات تحميل أسرع للصفحات - ذات أهمية كبيرة عبر الإنترنت، لكنها لا تقدم فائدة تذكر على الشبكة المحلية. فإن انخفاض زمن الوصول والاتصالات طويلة الأمد داخل الشبكة المحلية يقللان من تأثير بدء TCP البطيء. علاوة على ذلك، ثبت أن وظيفة دفع الخادم في HTTP/2 ضارة، وقد تم استبدالها بـ 103 Early Hints الأكثر أناقة. ويدافع الكاتب عن ترك معالجة HTTP/2 لموازني التحميل أو وكلاء العكس، مما يبسط النشر والصيانة لخادم التطبيق.

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

أسطورة تطبيق ريلز المرتبط بالمدخلات/المخرجات

2025-01-25

من الشائع الاعتقاد بأن تطبيقات ريلز مرتبطة بالمدخلات/المخرجات بطبيعتها، حيث تُعد قاعدة البيانات هي عائق الأداء الرئيسي، مما يجعل أداء روبي أقل أهمية. تتناول هذه المقالة هذه الفكرة. ففي حين أن قاعدة البيانات هي بالفعل عائق للتوسع، يجادل الكاتب بأن هذا لا يعني أن التطبيق يقضي معظم وقته في انتظار المدخلات/المخرجات. يُظهر تحليل تحسينات أداء YJIT ومشاكل الأداء الشائعة (مثل مؤشرات قاعدة البيانات المفقودة) أن العديد من تطبيقات ريلز مرتبطة بوحدة المعالجة المركزية بالفعل. تُبرز المقالة الالتباس بين جوع وحدة المعالجة المركزية وانتظار المدخلات/المخرجات، وتؤكد على أن اختيار نموذج التنفيذ الصحيح (غير متزامن، أو متعدد الخيوط، أو قائم على العمليات) يعتمد على نسبة المدخلات/المخرجات/وحدة المعالجة المركزية للتطبيق. يدعو الكاتب إلى إيلاء المزيد من الاهتمام لأداء روبي ويشير إلى فرص التحسين داخل ريلز نفسه.

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

تحسين أداء JSON في روبي: قصة تخصيص المكدس ودمج الكود

2025-01-02

تُعد هذه التدوينة مدونة، وهي الجزء الرابع من سلسلة تتناول تحسين أداء JSON في روبي، وتُفصّل رحلة الكاتب في تحسين سرعة تسلسل JSON في روبي. من خلال اختبارات دقيقة جدًا وعمليات تحديد المواقع، يستكشف الكاتب تقنيات تخصيص المكدس ودمج الكود. من خلال نقل تخصيص المخزن المؤقت من الذاكرة المتوفرة إلى المكدس، واستخدام دمج الكود بشكل استراتيجي، يتم تحقيق مكاسب كبيرة في الأداء. ومع ذلك، تُبرز المقالة أهمية موازنة تحسينات اختبارات الأداء الدقيقة مع أداء التطبيقات في العالم الحقيقي، مُظهرة حالة أثر فيها التحسين سلبًا على مجموعات البيانات الأكبر حجمًا.

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

تحسين أداء JSON في روبي: الجزء الأول

2024-12-18

تتناول هذه المدونة كيفية قيام الكاتب بتحسين أداء جوهرة JSON في لغة البرمجة روبي لتصبح واحدة من أسرع محركات تحليل وإنشاء JSON. وبدلاً من استخدام تقنيات معقدة، تم تطبيق تحسينات بسيطة بناءً على عملية تحديد المواقع، مثل تجنب عمليات الفحص الزائدة، وإعطاء الأولوية للشروط الأقل تكلفة، وتقليل تكاليف الإعداد، واستخدام جداول البحث. وتنطبق هذه التحسينات على كود كل من C و روبي. وقد أدت هذه التحسينات إلى زيادة كبيرة في أداء جوهرة JSON، مما جعلها تنافسية مع بدائل مثل oj، وتقليل الحاجة إلى استخدام تقنية Monkey Patching، وحل مشاكل الاستقرار والتوافق المرتبطة بـ oj.

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