Measures of Central Tendency
Arithmetic Mean
المتوسط الحسابي العادي. جيد للبيانات المنتظمة، لكنه مضلل إذا كانت البيانات مبعثرة (Skewed).
Geometric Mean
يستخدم للمقارنة النسبية (Ratios) والبيانات المعيارية (Normalized). يعطي نتائج متسقة بغض النظر عن الجهاز المرجعي.
Harmonic Mean
الأفضل للتعامل مع المعدلات (Rates) والإنتاجية (Throughput). القيم الصغيرة تؤثر فيه بشدة.
Benchmarks (المعايير القياسية)
SPEC
Standard Performance Evaluation Corp
مجموعة من البرامج الحقيقية (Kernels) لقياس أداء المعالج (CPU) بشكل خام.
يركز على الحسابات (Integer/Floating Point).
TPC
Transaction Performance Council
لقياس أداء النظام كاملاً (خاصة قواعد البيانات والسيرفرات).
يركز على المعاملات في الدقيقة (Transactions per minute).
Code Optimization Techniques
الكود العادي (بطيء)
for (i=0; i<100; i++) {
a[i] = a[i] + b[i];
}
*يتحقق من الشرط 100 مرة.
بعد الـ Unrolling (سريع)
for (i=0; i<100; i+=2) {
a[i] = a[i] + b[i];
a[i+1] = a[i+1] + b[i+1];
}
*يتحقق من الشرط 50 مرة فقط.
Loop Fusion
دمج حلقتين (Loops) تستخدمان نفس البيانات في حلقة واحدة لتحسين استخدام الكاش.
Loop Peeling
فصل الحالات الخاصة (أول أو آخر دورة) خارج الحلقة لتسريع الجسم الرئيسي للحلقة.
Disk Scheduling Algorithms
| الخوارزمية | طريقة العمل | الميزة / العيب |
|---|---|---|
| FCFS | خدمة الطلبات بالترتيب (First Come First Served). | أداء سيء وعشوائي (حركة الذراع كثيرة). |
| SSTF | الأقصر مسافة أولاً (Shortest Seek Time First). | سريع، لكن قد يسبب مجاعة (Starvation) للطلبات البعيدة. |
| SCAN (Elevator) | يتحرك الذراع للنهاية ثم يعود (مثل المصعد). | عادل ومنتظم. |
| C-SCAN | يتحرك في اتجاه واحد فقط، ثم يقفز للبداية (Circular). | زمن استجابة أكثر تجانساً. |
Branch Prediction
Static: التخمين ثابت دائماً (مثلاً: دائماً افترض أن الشرط سيتحقق).
Dynamic: التخمين بناءً على التاريخ السابق (History) لهذا الشرط.
الهدف: تجنب تفريغ الـ Pipeline.
Disk Utilization Knee
في الأقراص، عندما تصل نسبة الاستخدام (Utilization) إلى 80%، يبدأ وقت الانتظار (Queue Time) في الارتفاع بشكل جنوني.
لذلك، القاعدة الذهبية: لا تدع استغلال القرص يتجاوز 80%.