نقطة اتصال (برمجة الكمبيوتر)

تُعرف النقطة الساخنة في علوم الحاسوب عادةً بأنها منطقة في برنامج الحاسوب حيث تحدث نسبة عالية من التعليمات المنفذة أو حيث يتم قضاء معظم الوقت أثناء تنفيذ البرنامج (ليس بالضرورة نفس الشيء لأن بعض التعليمات أسرع من غيرها).

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

تاريخ اكتشاف النقاط الساخنة

وصف عالم الكمبيوتر دونالد كنوث أول لقاء له بما يسميه " تتبع القفز" في مقابلة مع مجلة دكتور دوبز عام 1996، قائلاً:

في ستينيات القرن الماضي، ابتكر أحدهم مفهوم "تتبع القفز". كانت هذه طريقة لتعديل لغة الآلة للبرنامج بحيث يُغيّر التفرع التالي أو تعليمة القفز للحفاظ على التحكم، مما يسمح بتنفيذ البرنامج بسرعة عالية نسبيًا بدلًا من تفسير كل تعليمة على حدة وتسجيل موضع انحراف البرنامج عن التسلسل في ملف. من خلال معالجة هذا الملف، يُمكن تحديد الجزء الذي يقضي فيه البرنامج معظم وقته. في اليوم الأول لتشغيل هذا البرنامج، طبقناه على مُترجم فورتران الخاص بنا، والذي زودتنا به، على ما أظن، شركة Control Data Corporation آنذاك . اكتشفنا أنه كان يقضي 87% من وقته في قراءة التعليقات ! والسبب هو أنه كان يُترجم من نظام ترميز إلى آخر ثم إلى آخر. [ 1 ]

التكرار

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

محاكاة مجموعة التعليمات ككاشف للنقاط الساخنة

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

انظر أيضاً

مراجع