اذا في المورححين غير الفواكيين لتقنولوهيا الدوت تت ؟!1!
يمكن الاستعانة بدوال ال 201 الخاصة بالوينداوز بالنسبة لمبرمجى ال 3881 17180181 و ال 1719181
تبج مفخلا ا
و على سبيل المثال لا الحصر؛ يمكن استخدام الدالة 667121001171 التى تعطينا الوقت المستغرق ب
ال 116168 (100 نانوثانية - 1 ع1101) منذ بداية 56881011 الوينداوز
الدالة معرفة في ال اتعءفة16: 1 203202075
و لاستعمالهاء يجب العمل كالتالى:
1 تخزين القيمة المرجعة من الدالة عند البداية في متغير من ذوع 10118
2 تخزين القيمة المرجعة من الدالة عند النذهاية في متغير من نوع 10128
3 حساب الفرق بين قيمتي المتغيرين و الذي يمثل الوقت المستغرق لتنفيذ المقطع (بالتقريب لأن زمن استدعاء
6 خاتمة
التحسينات العملية فى نسخة إطار العمل 20 1181116170116 11121 و لا يجب تجاهلها لأنها أداة جيدة
للمبرمجين الجادين
أخيرا عليك أخي المبرمج الأخذ في عين الاعتبار أن الوصول إلى أسرع الحلول أمر مهم في جمل
برنامجك اقتصادي في مصادر النظام؛ فإهمال جانب كهذا لا يمت بصلة إلى الحرفية و المهنية في التطوير
وعموما تدخل مرحلة تسريع الأداء في نطاق التحسينات على النسخة الأصلية حيث لا يمكن أن تقوم
بتجريب جميع الإمكانيات و المقارنة بينها مع بداية تطوير النسخة الأولى لذلك عليك التركيز أولا على الهميكل
وبعدها تتدول إلى التحديثات
بوالطمين وليد 2/0/7
بسم الله الرحمن الرحيم
أحببت أن أضع بعضض المواضيع الي أجمعها من الشبكة الععكبوتية و من مستندات ال1,151(17 ا تصرف
الإخوة الأعضاء؛ و أنظمها في سلسلة مقالات باللغة العربية تعالج مواضيع منوعة في ما يخص إطار العمل
©1 1110105011 بطريقة مختصرة و مع أمثلة وافية وقد كان في اختياري للمواضيع نمط ومنهجية بحيث
أعالج المواضيع حسب المستويات مراعاة للإخوة الممتدئين و المحترفين على حد السواءء كما و نظمت المواضيع على
مجموعة من الأقسام ستكون مخصصة: للمواضيع المتقدمة (هندسة وهيكلة التطبيقات) الخيل و الأثكار البرمجيةء
أعلم أن هذا العمل ليس بالسهل أو الذي يمكن المجازه قٍِ وقت قصيرء لكن سأحاول إن شاع الله تعالى أن أقِ
بوعدي و أضع مقالات بوتيرة منحظمة و أرجو من الإخوة الأعضاء أن يساعدوي با نجاز هذا العمل ليعم الخبء
فالرجاء كل من يستطيع المساعدة أن يكتب في هذه السلسلة وأن يتقيد بالتصميم والنسق الذي ترونه حق يكون
العمل متقن و جميل و يعطي سمعة جيدة عن المنتدى و أعضائه و على الله تعالى الغواب و الأجرء وحق يقى للعرب
مكان تحت الشمس
وليد بوالطمين
كلية المهندسة/ معهد الإعلام الآلي و الرياضيات/ جامعة منتوري
مدينة قسنطينة -- حاضرة العلم - الجزائر
الجمعة 28 :هادى الثانية من سنة 1428 للهجرة
الموافق ل 2007/07/14 م
تحسين سرعة الأداء بالاستعانة بالفئة 5037301
تمهيد
لمحة عن الفئة الجديدة 50010731217
أ- طريقة عمل الفئة
ب- الطرق (11601005)
احتساب وقت تنفيذ مقطع من كود
بعض الأمثلة التطبيقية
4 المثال الأول: مقارنة بين سرعة تنفيذ الحلقتين «ه؟ و طعةةت عو<
4 المثال الثانى: مقارنة بين سرعة استعمال الفئتين 5131109
4-ب1_المثال الأول: مقارنة بين سرعة تنفيذ الحلقتيقن عد و قوع
4ب2_المثال الثانى: مقارنة يين سرعة استعمال الفئتين 513109
خاتمة
وح الاج حاير
لا شك أن هدف أي مبرمج هو بلوغ درجة الاحتراف و بناء تطبيقات قوية و متينة من جميع النواحيء
فالاعتناء بمظهر واجهة البرنامج و جعلها جذابة و سهلة الاستعمال للمستخدم امر حيوي كما ان ملاحقة
الأخطاء البرمجية (0©01188108) و جعل التطبيق متين و خالي تماما من الأخطاء لا يقل أهمية عن الأول؛
لكن هل فكرت بالجانب الخاص بمصادر النظام و خاصة سرعة التنفيذ؟
إن من بين الأمو ر الأساسية التي تجعل البرنامج ينال رضا المستعمل هو سرعة التنفيذ؛ لذلك عليك الحرص
على ذلك باختيار أسرع طرق التتفيذ من بين الخيارات المتوفرة لمعالجة مقطع من الكود لكن كيف السبيل إلى
المقارنة بين سرعات التنفيذ لمختلف الحلول المتوفرة؟
هذا السؤال سنجيب عليه إن شاء الله بين أسطر هذا المقال لذلك شدوا الأحزمة سننطلق
2 لمحة عن الفئة الجديدة طهو+5+02”3
و من بينها الفئة 520023110 _التابعة لمجال الأسماء 01380110511205 852775160
رغم بساطتها إلا أنها ذات فائدة كبيرة للمبرمج فبواسطتها يمكنك احتساب وقت تنفيذ مقطع من الشيفرة بطريقة
متناهية الدقة (دقة تصل إلى 10” جزء من الثانية) و من خلال 3 أسطر فقط!
2) طريقة عمل الفئة
الفئة تمتلك مجموعة من الخصائص و الطرق تمكننا من حساب وقت التنفيذ وذلك بإتباع النهج التالي:
1 تهيئة الفئة باستعمال الطريقة () +2652
2 إعطاء الأمر ببدء احتساب الوقت باستعمال الطريقة () 5231 قبل بداية مقطع الكود المعني مباشدرة
3 إعطاء الأمر بتوقيف عملية الاحتساب باستعمال الطريقة () 500 بعد مقطع الكود
4 معرفة الوقت المستنفذ من الخاصية و2182 أن 1115600105 لنثت20 2180 أو 518052607115
2ب الطرق (1161005)
أحببت أن أختصر و أعرج على أهم الطرق التى نحتاجها
الطريقة اتسرح
( 12865281 تهيئة نسخة الفئة الحالية لعملية جديدة بحذف قيمة الوقت المحتسب سابا (إعطاء
القيمة 0 (أى -الننتت 1700 ) للخاصية نوع 51805)
( 5821 إعطاء الآمر ببداية الاحتساب في حالة عدم تهيئة نسخة الفئة من قبل فإن عملية
الاحتساب ستكون تراكمية أي أن القيمة الجديدة ستضاف إلى القيمة السابقة المخزنة
في الخاصية 860546 518053
() 500 توقيف عملية الاحتساب و جعل الخاصية 15111121111720 تحمل القيمةة 158 18
الجدول 12: بعض طرق الفئة 581010170310
2ت الخصائص (07008611065) و فى عجالة
الخاصية النوع
الجدول 22: بعض خصائص الفئة 501010312011
8 إجتتعاب وقتت قير مقطة سح كور
سنستعمل مثال تطبيقي لشرح كيفية احتساب الوقت المستتفذ في تنفيذ مقطع من كود و على سبيل المثال لا
الحصر سنقوم بتعريف دالة تقوم بالإضافة المتكررة لدرف معين إلى متغير نوع 511311120 57751610 ان
مرة و نحتسب الوقت اللازم لفعل ذلك
تحديد مجال الأسماء
الشرح
الوقت الكلي المحتسب بين الأمرين 318:10 و 50000 و
ذلك على هيئة نسخة من الفئة 1111658<5317
الوقت الكي المحتسب بال 11065 (100 نانو ثانية (10 7
قيمة الوقت بالملى ثانية المحتسب من طرف النسخة
هل عملية الاحتساب قيد التشغيل أم لا
كما قلناء الفئة 52003117 تابعة لمجال الأسماء 013801200511205 852775160
3ب تعريف الدالة التي تقوم بعملية الإضافة المتكررة:
28182 معماء (0 <> ط«) كذ
الشيفرة 13: تعريف دالة الإضافة التراكمية
23186 عند 26
عقطا معد ج65 -26و<1232
عيدع1 دعتتاج 126
3ت استعمال الفئة 500273-21 لحساب سرعة تنفيذ تكديس 50000
حرف في متغير سلسلة حروف
إنشاء نسخة من الفئة 5800©085-6[6 '
المقطع الذي نريد حساب وقت تنفيذة '
توقيف عملية الحساب '
إظهار الوقت المستغرق لتنفيذد عملية إضافة 50000 حرف إلى المتغير '
7 )5500103-02 سعد 2 1175002-61 5010102-5-061
تنفيذده وقت حساب نريد الذي المقطع //
توقيف عملية الحخحساب//
إظلهاز الوقت المستنفد لإضافة 500800 حرف إلى المتغير //
الشيفرة 23: احتساب الوقت المستغرق لتكديس 50000 حرف
4 بعض الأمثلة التطبيقية
سأعرض في هذه الفقرة مثالين عن بعض الحالات الشهيرة لاستعمال الفئة في مقارنة وقت تنفيذ مقطع يمكن
كتابته بشكلين مختلفين؛ الأول في مقارنة بين الحلقتين التكراريتين 2017 و طط28 عو (عوع
و 10176321 في ال 0#) أما الثاني فسأعرض فيه مقارنة بين الفئتين و8210 و 811110801106
- كما تعلمون فإن التنفيذ الأول للأمتلة (استدعاء الطرق لأول مرة من طرف المترجم) سيكون بطيئا جدا
لأن كود الب11511 ستعاد ترجمته بواسطة المترجم 111 إل لغة الآلة ذلك بعاد التنفيذ الثاني يمكننا حساب
الوقت الحقيقى فى الأمثلة
- النتائج المتحصل عليها بعد التدفيذ تختلف من جهاز إلى آخر حسب مواصفاته فالنتائج المتحصل عليها
عندي ليست بالضرورة ما ستتحصل عليه بعد تنفيذ الأمثلة (الاختلاف يكون في الأرقام و ليس في الحل
- الفئة 511111083111108 تابعة لمجال الأسماء 16:51 5127751610
ماح الا
4 المثال الأول: مقارنة بين سرعة تنفيذ الحلفتين عدة؟ وطعدةع عوع
قائمة )١ عأقذاتية عط 001160130118 و11 ف ل قاد عقترمس ستذط
حساب الوقت اللازم لتنفيذ المقطع باستعمال الحلقة التكرارية 88815 <ه2'
(إ لاعن 5 5-1 1075102
حساب الوقت اللازم لتنفيذ المقطع باستعمال الحلقة التكرارية <0<'
الشيفرة 14: مقارنة وقت التنفيذ المستغرق باستعمال حلقتين مختلفتين مع القوائم
حساب الوقت اللازم لاضافة 5000 عنصر 497
إلى القائمة 4998
ورف >
النتائج (بال يى110) ا 0
الغرق واضح, لذلك يستحسن استعمال الحلقة 02ج إذا أمكن
الصورة 14: منظر النتائج و يبدو أن الحلقة عر70 أحسن من نظيرتها 881 201 مع القوائم
4 المثال الثاني: مقارنة بين الخليتين ومصنعء8 و 8179801102٠
ستعمال الفثة العادية 5-130 ”<579+8'
استعمال الفئة -5-6-3120383131106 16417 579-2610 '
دقة الحساب 7-10"
قط وعد جح و2
الشيفرة 24: مقارنة وقت التنفيذ المستغرق لتكديس 50000 حرف باستعمال الفئتين
| استخدام الخلية 20 17 ) :7م510 )
3 حساب الوقت اللازم لاضافة 50000 حرف
َ إلى متغير نوع 508109
الصورة 24: منظر النتائج
و تظهر القوة الرهيبة للفئة النتائج (بال 11068) ال ا ا ا
الغرق واضح, لذلك يستحسن استعمال الخلية 81108و 50 إذا أمكن
4ب المثال الأول: مقارنة بين سرعة تنفيذ الحلفنين عدة و طعقععوع
6)(7- 550091032 معد - 117502-61 5010170201
+7 () 001160110158 معه - قل تدع عقترمس جح قا ترد نط 051126861101315
لا القائمة #77 09
++ 50007 > 1 2) جوع
حساب الوقت اللازم لتنفيذ المقطع باستعمال الحلقة التكرارية 20<76881//
حساب الوقت اللازم لتنفيذ المقطع باستعمال الحلقة التكرارية <10//
ذدكة الحساب 7-0"
الشيفرة 34: إعادة المثال 4أ1 بلغة ال 0#