تخطَّ إلى المحتوى

قياس أداء نزيه

Spec: ISO/IEC 25010 Spec: ISO/IEC 17025 Evidence: Benchmark-backed

رقم قياس الأداء من دون منهجيته لا يكاد يقول شيئًا. فعبارة “يعرض ⁨NextPDF⁩ مستندًا في ⁨N⁩ مللي ثانية” لا تفيدك ما لم تعرف المستند، والعتاد، وعدد عمليات التشغيل، والتباين. تشرح هذه الصفحة كيف يقيس ⁨NextPDF⁩ الأداء، ولماذا يُبلّغ عن إشارة مضبوطة بدلًا من رقم لافت، ولماذا لا ينشر أي رقم للسرعة.

من السهل نشر ادعاءات الأداء، ومن السهل أيضًا تضليلها، وغالبًا يحدث ذلك من غير قصد. فعملية تشغيل دافئة واحدة على حاسوب محمول خامل، أو أسرع نتيجة من عشر محاولات، أو قياس أداء مُصغّر لدالة لا يستدعيها أحد في مسار ساخن، كلّها قد تنتج رقمًا حقيقيًّا لا يتنبّأ بأي شيء عن حِمل عملك. Spec: ISO/IEC 25010 يُعرّف كفاءة الأداء بأنها أداء الوظائف ضمن معاملات الزمن والإنتاجية في ظل شروط محدّدة (ISO/IEC 25010، §3.10). احذف عبارة “في ظل شروط محدّدة”، فيتوقف الرقم عن كونه قياسًا ويصبح رقمًا بلا معنى.

وهناك إخفاق أهدأ أيضًا: رقم كان صحيحًا في يوم ما. في اللحظة التي تثبّت فيها نتيجة قياس أداء داخل نص، تتجمّد تلك النتيجة. وفي الأثناء تستمر الشيفرة وبيئة التشغيل والعتاد في التغيّر. إن ادعاء “سريع” القديم ليس عديم الفائدة فحسب؛ بل هو خاطئ، وخاطئ في صمت.

  • رقم الأداء بلا معنى من دون منهجيته: المُدخَل، والبيئة، وعدد عمليات التشغيل، وسياسة الإحماء، ومدى الانتشار.
  • يقيس ⁨NextPDF⁩ عبر عمليات تشغيل متكرّرة، ويتجاهل تكرارات الإحماء، ويُبلّغ عن توزيع، لا عن رقم وحيد لأفضل حالة.
  • إن كشف التراجع إحصائي: تُقيَّم النتيجة مقابل خط أساس باستخدام اختبار ⁨t⁩ لوِلش، بحيث يجب أن يكون التغيير ذا دلالة إحصائية وكبيرًا بما يكفي ليهمّ معًا قبل أن يُحسب تراجعًا.
  • تُكتشَف البيئة غير المستقرّة ويُبلَّغ عنها، ولا تُذاب بصمت داخل متوسط — فالتباين العالي من تشغيل إلى آخر يُبطل النتيجة بدلًا من أن يختبئ في المتوسط.
  • يُنشَر الأداء بوصفه إشارة حيّة تُولَّد مع الإصدار، لا بوصفه عنوانًا مجمّدًا إلى الأبد — ولهذا لا يظهر أي رقم بالمللي ثانية في هذه الصفحة.

بوّابة الأداء في المحرّك اختبار إحصائي، لا عملية تشغيل مُوقَّتة واحدة. تُشغّل المنهجية المُوثَّقة المجموعة المقيسة مرات عديدة، وتتجاهل عددًا مُهيّأً من عمليات تشغيل الإحماء، وتحسب المتوسط والانحراف المعياري ومُعامل الاختلاف لكلٍّ من المدة والذاكرة. ثم تقارن النتيجة الحالية بخط أساس مُودَع:

  1. Repeat Run the measured suite N times under fixed conditions.
  2. Discard warmup Drop the first W runs so cold-start noise is excluded.
  3. Summarise Compute mean, standard deviation, and coefficient of variation for duration and memory.
  4. Test vs baseline Welch's t-test (two-sample, unequal variance) against the committed baseline.
  5. Decide Significant AND effect over threshold → regression. Variance over threshold → unreliable, not a pass. Absolute ceiling breach → hard fail.
كيف تقرّر بوّابة قياس الأداء في NextPDF النجاح أو الإخفاق أو عدم الموثوقية: تُؤخَذ قياسات متكرّرة، وتُسقَط عمليات الإحماء، ويُلخَّص التوزيع، ثم يُطبَّق اختبار t لوِلش مقابل خط أساس مُودَع. يتطلّب التراجع دلالة إحصائية وحجم تأثير مادي معًا؛ ويُبلَّغ عن التباين المفرط بوصفه غير موثوق بدلًا من تذويبه في حكم بالمتوسط.

ثلاث خصائص تُبقي هذا القياس نزيهًا. أولًا، يتطلّب التراجع أمرين في آنٍ واحد: دلالة إحصائية (من غير المرجّح أن يكون الفرق ضجيجًا) وحجم تأثير يتجاوز عتبة (أي أن يكون الفرق كبيرًا بما يكفي للاهتمام به). تباطؤ حقيقي طفيف لا يطلق إنذارًا كاذبًا. وتباطؤ كبير في بيانات مشوبة بالضجيج لا يمرّ بلا ملاحظة. ثانيًا، عدم الاستقرار حكم بحد ذاته: حين يتجاوز التباين من تشغيل إلى آخر حدًّا معيّنًا، تُبلّغ البوّابة عن البيئة بوصفها غير موثوقة. فهي لا تُذيب الضجيج في متوسط بلا معنى وتسمّيه نجاحًا. ثالثًا، ما زال هناك سقف مطلق — حدّ أعلى صارم يُخفِق الإصدار بصرف النظر عن الإحصاءات. وبسببه، لا يمكن أبدًا أن تبرّر عبارة “لا تراجع ذو دلالة” نتيجة بطيئة جدًّا أصلًا.

هذا هو انضباط القياس الذي يصفه ⁨ISO/IEC 17025⁩ لأي مقياس ذي مصداقية: نتائج يُحصَل عليها في ظل شروط محدّدة مسبقًا — قابلية التكرار داخل بيئة واحدة (⁨ISO/IEC 17025⁩، §3.7) وقابلية إعادة الإنتاج عبر البيئات (⁨ISO/IEC 17025⁩، §3.5). لا يكون لرقم أداء ⁨NextPDF⁩ معنى إلا بوصفه “هذه المنهجية، وهذا خط الأساس، وهذه العملية”. ولهذا تحديدًا يبقى مع الإصدار الذي أنتجه، لا في جملة هنا.

Evidence: Benchmark-backed إن بوّابة قياس الأداء في المحرّك تُنفّذ قياسًا متكرّرًا مع تجاهل الإحماء، وتلخّصه بالمتوسط / الانحراف المعياري / مُعامل الاختلاف، واختبار ⁨t⁩ لوِلش ثنائي العيّنة مقابل خط أساس مُودَع، مع نتائج صريحة هي النجاح / التراجع / عدم الاستقرار / تجاوز السقف الصارم. توجد قياسات الأداء أيضًا بوصفها مجموعة مخصّصة قابلة للتشغيل بشكل منفصل وإطار تشغيل ⁨PHPBench.⁩ يُقاس الأداء قياسًا متعمَّدًا، لا تقديرًا.

Evidence: Standard-backed ليست عبارة “في ظل شروط محدّدة” احترازًا تحريريًّا. بل هي التعريف ذاته. Spec: ISO/IEC 25010, §3.10 يربط كفاءة الأداء بشروط محدّدة للزمن والإنتاجية والموارد. إن رقمًا بلا شروطه ليس قياسًا أضعف. إنه ليس قياسًا أصلًا.

Evidence: Standard-backed إن تأطير قابلية التكرار وقابلية إعادة الإنتاج يتبع Spec: ISO/IEC 17025 : فالنتيجة لا تكون ذات مصداقية إلا نسبةً إلى شروط محدّدة مسبقًا، مع التمييز بين قابلية التكرار في البيئة نفسها وقابلية إعادة الإنتاج عبر بيئات مختلفة. إن قياس أداء لا يمكنه أن يذكر شروطه لا يمكنه ادعاء أيٍّ منهما.

إن ما تبدو عليه عبارة “نزيه” في الممارسة هو بيان منهجية، لا رقم:

<?php
declare(strict_types=1);
// The gate is invoked with its conditions made explicit, e.g.:
//
// php ci/scripts/benchmark-gate.php \
// --runs=5 --warmup=1 --testsuite=Unit \
// --baseline=<committed-baseline>
//
// It then reports, for duration AND memory:
// - mean, standard deviation, coefficient of variation (the spread)
// - Welch's t-test p-value and effect size vs the baseline
// - a verdict: PASS | REGRESSION | UNSTABLE | hard-ceiling FAIL
//
// An honest performance statement is therefore shaped like:
// "<suite>, <runs> runs (<warmup> warmup), <hardware/runtime>,
// no statistically significant regression vs baseline <id>;
// coefficient of variation within bound."
//
// It is NEVER shaped like:
// "NextPDF is fast" — or a bare millisecond number with no method.

إن المُخرَج المُسلَّم من قياس الأداء هو المنهجية القابلة لإعادة الإنتاج والحكم. أما قيمة المللي ثانية الخام فتنتمي إلى الإصدار الذي أنتجها، حيث يمكنك إعادة اشتقاقها — لا إلى توثيق منسوخة فيه ولا يمكنك التحقّق منها.

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

والثاني هو أن عبارة “لا تراجع ذو دلالة إحصائية” تعني “سريع كما كان من قبل، ومضمون”. إنها تعني أن الفرق المرصود يقع ضمن ما يمكن للمنهجية أن تميّزه عن الضجيج، بالنظر إلى عدد عمليات التشغيل هذا وهذا التباين. وهذا بيان مقيَّد ومشروط. ولهذا تحديدًا يُبقي ⁨NextPDF⁩ على السقف المطلق بوصفه ضمانة مستقلّة، ويرفض ضغط النتيجة في ادعاء غير مشروط — لمصلحته أو ضدّ أي طرف آخر.

تصف هذه الصفحة كيف يقيس ⁨NextPDF⁩ الأداء ويُبلّغ عنه. وهي لا تذكر أي رقم للإنتاجية أو زمن الاستجابة أو الذاكرة عن قصد. فتلك إشارات حيّة تُولَّد من مُخرَجات التكامل المستمر في ظل شروط مُعلَنة، وتُنشَر القيم الحالية مع الإصدار. إن رقمًا يُكرَّر هنا سيكون بلا شروط وسيتقادم — وهو الإخفاق ذاته الذي تحاجّ هذه الصفحة ضدّه. لا يوجد ثابت أداء مستقر يُقتبَس، لذلك لا يُقتبَس أيٌّ منها. إن الانضباط هو المُخرَج المُسلَّم.

إن عدد عمليات التشغيل، وسياسة الإحماء، والعتبات، وخط الأساس مملوكة لتهيئة قياس الأداء في المحرّك، وتتطوّر مع المحرّك وعتاده. وتلك التهيئة هي المرجع إذا اختلفت يومًا مع هذا الشرح. لا يجري ⁨NextPDF⁩ أي مقارنة في الأداء مع أي مكتبة أخرى — مواتية كانت أم غير مواتية — لأن مقارنة كهذه من دون شروط متطابقة ومُعلَنة ستكون بالضبط الادعاء غير المشروط الذي وُجِدت هذه الصفحة لترفضه.

  • قياس الأداء — إجراء محدّد يُنتج توزيعًا من القياسات في ظل شروط مُعلَنة، لا رقمًا وحيدًا.
  • عملية تشغيل الإحماء — تكرار أوّلي يُتجاهَل حتى لا تشوب تأثيرات البدء البارد (⁨JIT⁩، والذواكر المؤقّتة، والتحميل التلقائي) النتيجة المقيسة.
  • مُعامل الاختلاف — الانحراف المعياري مقسومًا على المتوسط؛ مقياس للانتشار خالٍ من الوحدات يُستخدَم للحكم على ما إذا كانت عملية التشغيل مستقرّة بما يكفي للوثوق بها.
  • اختبار ⁨t⁩ لوِلش — اختبار إحصائي ثنائي العيّنة للتباينات غير المتساوية، يُستخدَم هنا لتقرير ما إذا كانت النتيجة تختلف عن خط الأساس بما يتجاوز الضجيج.
  • حجم التأثير — مدى كِبَر الفرق، بمعزل عن الدلالة الإحصائية؛ يشترط ⁨NextPDF⁩ الأمرين كليهما قبل إعلان تراجع.
  • قابلية التكرار / قابلية إعادة الإنتاج — توافق النتائج في ظل شروط محدّدة مسبقًا داخل بيئة واحدة (قابلية التكرار) أو عبر بيئات (قابلية إعادة الإنتاج)، وفق ⁨ISO/IEC 17025.⁩
  • السقف المطلق — حدّ أعلى صارم يُخفِق الإصدار بصرف النظر عن المقارنة الإحصائية.