أداء تطبيقات C++: من النظرية إلى التطبيق
300 صفحات
Arabic
PDF
4.5

أداء تطبيقات C++: من النظرية إلى التطبيق

أداء تطبيقات C++: من النظرية إلى التطبيق

المؤلف:

السنة:

ملخص:

كتاب «أداء تطبيقات C++» هو دليل عملي للمطورين الذين يرغبون في استخراج أقصى استفادة من كودهم. على عكس الكتب التعليمية حول أساسيات اللغة، يركز هذا الكتاب على نقاط الاختناق، وخصائص الأجهزة، والتقنيات الحديثة للتحسين المستخدمة في الأنظمة عالية التحميل، ومحركات الألعاب، والتطبيقات المالية، وتطوير الأنظمة المدمجة.



لمن هذا الكتاب؟

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


ماذا ستتعلم من الكتاب:

  • التنميط: كيفية استخدام perf وValgrind وIntel VTune وGoogle Benchmark بشكل صحيح. ستتعلم كيفية العثور على نقاط الاختناق الحقيقية بدلاً من التخمين.
  • الذاكرة: أخطاء التخزين المؤقت، محاذاة البيانات، تجمعات الذاكرة، المخصصات المخصصة. ستتعرف على لماذا يمكن أن يكون std::vector أسرع من std::list حتى مع الإدراج المتكرر.
  • الخوارزميات وهياكل البيانات: اختيار الحاوية المناسبة، تحسين جداول التجزئة، الحاويات المسطحة، استخدام SOA (مصفوفة من الهياكل) بدلاً من AOS.
  • التوازي: الهياكل الخالية من الأقفال، العمليات الذرية، الاستخدام الصحيح لـ std::async وتجمعات الخيوط. تجنب تضارب البيانات والمشاركة الزائفة.
  • المترجم: كيفية قراءة قائمة التجميع، علامات التحسين، تلميحات __restrict، likely/unlikely، وحدات الماكرو للتنبؤ بالتفرع.
  • C++ الحديث: دلالات النقل، إلغاء النسخ، constexpr والبرمجة الوصفية للحسابات في وقت الترجمة.


الكتاب مبني على مبدأ «من المشكلة إلى الحل». يبدأ كل فصل بمثال حقيقي لكود بطيء، يليه تحليل الأسباب وتحسين تدريجي مع قياس السرعة. جميع الأمثلة متاحة على GitHub وتم اختبارها على GCC وClang تحت Linux وWindows.



يتم إيلاء اهتمام خاص للتقنيات التي تعمل على المعالجات الحديثة (Skylake، Zen 3/4، Apple Silicon). ستتعرف على لماذا تعطي بعض التحسينات تسارعًا بمقدار 10 أضعاف بينما تكون أخرى عديمة الفائدة، وكيف لا تضيع الوقت في «تحسين من أجل التحسين».



هذا الكتاب ليس مرجعًا، بل أداة عمل. بعد قراءته، ستتمكن من تنميط أي مشروع بثقة، والعثور على «الاختناقات» وإزالتها دون التضحية بسهولة قراءة الكود. يُوصى به لأولئك الذين يكتبون بالفعل بلغة C++ ويريدون القيام بذلك بشكل أسرع.

توصيات