# طول مسار التعليمات

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

## برامج التجميع

نظراً لوجود علاقة فردية بين تعليمات لغة تجميع وتعليمات الآلة فإن طول مسار التعليمات قد يُشار إليه في الأغلب بعدد تعليمات التجميع اللازمة لأداء وظيفة/دالة أو قسم معين من الأكواد. إن أداء أمر بسيط للبحث في جدول علي قائمة غير مرتبة من 1000 بند قد يتطلب ربما 2000 من تعليمات الآلة (في المتوسط بافتراض التوزيع الموحد لقيم المدخلات), كما أن أداء نفس البحث علي قائمة خوارزميات الترتيب باستخدام خوارزمية بحث ثنائي قد يتطلب 40 فقط من تعليمات الآلة وهو توفير جيد للغاية. وللتعبير في ضوء طول مسار التعليمات، فإن هذا المقياس قد ينخفض في هذا المثال بعامل كبير 50 وهو السبب أن توقيتات التعليمات الفعلية قد يكون اعتبار فرعي مقارنةً بالاختيار الجيد للـ خوارزمية التي تتطب طول مسار أقصر. إن طول مسار التعليمات لبرنامج لغة يختلف كثيرا بشكل عام عن عدد خطوط الكود المصدري لهذا البرنامج لأن طول مسار التعليمات يتضمن كود فقط في مسار تدفق الضبط المُنفذ الخاص بالمدخلات المعنية ولا تتضمن بوضوح كود لا يرتبط بمدخل محدد أو كود غير قابل للتحقيق لا يمكن تنفيذه مطلقاً.

## برامج لغات المستوي العالي

نظراً لأن عبارة واحدة مكتوبة بأحد اللغات عالية المستوي يمكن أن ينتج عنها تعليمات آلة متعددة بأرقام متباينة، فليس من الممكن دوما تحديد طول مسار التعليمات ـ على سبيل المثال ـ بدون نموذج محاكاة لمجموعة تعليمات يستطيع تحديد عدد التعليمات المُنفذة أثناء المحاكاة. إذا كانت اللغة عالية المستوي تدعم وينتج عنها اختيارياً «قائمة تجميع» فمن الممكن أحياناً تقدير طول مسار التعليمات عن طريق دراسة هذه القائمة. للأسف لا تتوافر لدي معظم مبرمجي اللغات عالية المستوي المعرفة لفهم تعليمات التجميع الناتجة مع عدم وجود طريقة لفهم أطوال مسار التعليمات لأكوادها ـ ما عدا ربما عن طريق الحكايات أو الخبرات السيئة. لذا فإن اختيار عبارات لغة معينة عالية المستوي يمكن أن يكون له آثار سلبية علي أطوال مسار التعليمات بدون أن يكون لدي المبرمج أي وسيلة لمعرفة ذلك في حالات عديدة.

## العوامل المحددة لطول مسار التعليمات

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

## استخدام أطوال مسار التعليمات

يوضح ما سبق ذكره أن معرفة أطوال مسار التعليمات يمكن استخدامه:
* لاختيار خوارزمية مناسبة لتقليص إجمالي أطوال مسارات البرامج في أي لغة.
* لمراقبة كيفية تحقيق أمثلية البرنامج في أي لغة.
* لتحديد مدي كفاءة العبارات عالية المستوي في اللغات عالية المستوي
* مقياس تقريبي للأداء العام

## مراجع خارجية

* Computer Architecture By John L. Hennessy, David A. Patterson, David Goldberg, Krste Asanovic
* IBM - Glossary of Performance Terms

## مراجع

* بوابة علم الحاسوب