تكتيكات لتحقيق أقصى سرعة لتنفيذ الشيفرة [مترجم]
#2
تكتيكات لتحقيق أقصى سرعة لتنفيذ الشيفرة


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

يمكننا أن ننظر إلى تحسين مشكلة السرعة على مستويين: الإستراتيجية أو التكتيكية.

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

وأترك لكم اتخاذ قرار بشأن اعتماد إستراتيجية، وأنا لا أتعامل إلا مع التكتيك. وهذا يعني تغييرات على نطاق صغير، و الذي سوف يتضمن سوى عدد قليل من سطور الشيفرة.

و بعملية حسابية ، عن برامج فورتران، أن 4 ٪ من البرنامج تمثل في المتوسط 50 ٪ من وقت التنفيذ. و هذا بدون شك صحيح بالنسبة لجميع اللغات. سنرى كيفية تحسين هذا الوضع.

أولا لنتحدث عن سوء الفهم الشائع على النحو التالي :
"خفض عدد خطوط الشيفرة يحدد حجم وسرعة التنفيذي فيه."

خطأ!

الأدلة ؟

- تهيئة مجموعة من 10 عناصر :
كود :
[align=left][color=Blue]for i := 1 to 10 do MaTable[i] := 0;[/color][/align]

في رأيك، هل الطريقة أسفله ستكون أسرع أم أبطأ ؟
كود :
[align=left][COLOR=Blue]MaTable[1] := 0; MaTable[2] := 0; MaTable[3] := 0; MaTable[4] := 0; MaTable[5] := 0; MaTable[6] := 0; MaTable[7] := 0; MaTable[8] := 0; MaTable[9] := 0; MaTable[10] := 0; [/COLOR][/align]
باختبار بواسطة دلفي 7 نجد أن الطريقة الثانية أحسن بنسبة أداء بـ 1.7 : 1 (أسرع بـ 1.7 مرة)

واغتنم هذه الفرصة لإبداء تنويه صغير.

التقنيات التي سأتقدم بها لا تشكل الطريقة التي يتعين تطبيقها بصورة عمياء. القليل من هذه التقنيات المطبقة بصورة عامة تصلح لنقلها مباشرة إلى شيفرتك (محتوى برنامجك). سيكون عليك اختبار والتحقق بأن المجمع (Compiler/compilateur) الذي تملكه يتقبلها. وفي الواقع، بعض التقنيات، والتي تظهر سليمة، يمكن لها أن تقلل من قدر الأداء بعد تجميعها. سأوضح بمثال على هذا، وأذكِّر بنقطة هامة جدا: " الاختبار، الاختبار وإعادة الاختبار".
الرد


الردود في هذا الموضوع
تكتيكات لتحقيق أقصى سرعة لتنفيذ الشيفرة [مترجم] - بواسطة merouane - 25-03-2008, 01:44 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم