İçeriğe geç

Dürüst karşılaştırmalı değerlendirme

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

Yöntemi olmayan bir karşılaştırmalı değerlendirme sayısı neredeyse hiçbir şey ifade etmez. “NextPDF bir belgeyi N milisaniyede işler” ifadesi; belgeyi, donanımı, çalıştırma sayısını ve varyansı bilmediğiniz sürece size hiçbir şey söylemez. Bu sayfa, NextPDF’in performansı nasıl ölçtüğünü, manşet niteliğinde bir rakam yerine neden kapı denetiminden geçmiş bir sinyal raporladığını ve neden hiçbir hız sayısı yayımlamadığını açıklar.

Performans iddialarını yayımlamak kolaydır; bunları sahteleştirmek de çoğu zaman kazara kolaylaşır. Boştaki bir dizüstü bilgisayarda tek bir sıcak çalıştırma, on denemenin en hızlı sonucu ya da sıcak yolda kimsenin çağırmadığı bir işlevin mikro karşılaştırmalı değerlendirmesi; bunların hepsi, iş yükünüz hakkında hiçbir öngörü sunmayan gerçek bir sayı üretebilir. Spec: ISO/IEC 25010 performans verimliliğini, işlevleri belirtilen koşullar altında zaman ve verim parametreleri içinde gerçekleştirmek olarak tanımlar (ISO/IEC 25010, §3.10). “Belirtilen koşullar altında” ifadesini kaldırdığınızda sayı bir ölçüm olmaktan çıkar. Anlamı olmayan bir rakama dönüşür.

Daha sessiz bir başarısızlık türü de vardır: bir zamanlar doğru olan sayı. Bir karşılaştırmalı değerlendirme sonucunu düz metne yapıştırdığınız anda o sonuç donar. Bu sırada kod, çalışma zamanı ve donanım değişmeye devam eder. Eskimiş bir “hızlı” iddiası yalnızca işe yaramaz olmakla kalmaz. Yanlıştır ve sessizce yanlıştır.

  • Bir performans sayısı, yöntemi olmadan anlamsızdır: girdi, ortam, çalıştırma sayısı, ısınma ilkesi ve yayılım.
  • NextPDF yinelenen çalıştırmalarla ölçer, ısınma yinelemelerini atar ve tek bir en iyi durum rakamı değil, bir dağılım raporlar.
  • Gerileme tespiti istatistikseldir: bir sonuç, Welch t-testi ile bir temel çizgiye karşı değerlendirilir; bu nedenle bir değişiklik, gerileme sayılmadan önce hem istatistiksel olarak anlamlı hem de önemli sayılacak kadar büyük olmalıdır.
  • Kararsız bir ortam, sessizce ortalamaya katılarak yok sayılmak yerine tespit edilip raporlanır — çalıştırmalar arasındaki yüksek varyans, ortalamada gizlenmek yerine sonucu geçersiz kılar.
  • Performans, donmuş bir manşet olarak değil, derlemeyle birlikte üretilen canlı bir sinyal olarak yayımlanır — bu sayfada hiçbir milisaniye rakamının görünmemesinin nedeni budur.

Motorun performans kapısı, tek bir süreli çalıştırma değil, istatistiksel bir testtir. Belgelenmiş metodoloji, ölçülen takımı birçok kez çalıştırır, yapılandırılmış sayıda ısınma çalıştırmasını atar ve hem süre hem de bellek için ortalama, standart sapma ve varyasyon katsayısını hesaplar. Ardından geçerli sonucu, sürüm denetimine kaydedilmiş bir temel çizgiyle karşılaştırır:

  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'in karşılaştırmalı değerlendirme kapısının geçti, kaldı veya güvenilmez kararını nasıl verdiği: yinelenen ölçümler alın, ısınmaları atın, dağılımı özetleyin, ardından sürüm denetimine işlenmiş bir temel çizgiye karşı Welch t-testini uygulayın. Bir gerileme, hem istatistiksel anlamlılık HEM DE önemli bir etki büyüklüğü gerektirir; aşırı varyans, bir karara ortalanmak yerine güvenilmez olarak raporlanır.

Üç özellik bunu dürüst tutar. Birincisi, bir gerileme aynı anda iki şeye ihtiyaç duyar: istatistiksel anlamlılık (farkın gürültü olma olasılığı düşüktür) ve bir eşiği aşan etki büyüklüğü (fark, üzerinde durulacak kadar büyüktür). Küçük ama gerçek bir yavaşlama yanlış alarm üretmez. Gürültülü verideki büyük bir yavaşlama da gözden kaçırılmaz. İkincisi, kararsızlık bir karardır: çalıştırmalar arasındaki değişim bir sınırı aştığında kapı, ortamı güvenilmez olarak raporlar. Gürültüyü anlamsız bir ortalamanın içine katıp buna geçti demez. Üçüncüsü, yine de bir mutlak tavan vardır — istatistiklerden bağımsız olarak derlemeyi başarısız kılan kesin bir üst sınır. Bu nedenle “anlamlı gerileme yok” ifadesi, zaten fazla yavaş olan bir sonucu asla mazur gösteremez.

Bu, ISO/IEC 17025’in güvenilir her ölçüm için tanımladığı ölçüm disiplinidir: önceden belirlenmiş koşullar altında elde edilen sonuçlar — tek bir ortam içindeki tekrarlanabilirlik (ISO/IEC 17025, §3.7) ve ortamlar arasındaki yeniden üretilebilirlik (ISO/IEC 17025, §3.5). Bir NextPDF performans rakamı yalnızca “bu yöntem, bu temel çizgi, bu çalıştırma” bağlamında anlamlıdır. Tam da bu nedenle bu rakam, buradaki bir cümlede değil, onu üreten derlemeyle birlikte bulunur.

Evidence: Benchmark-backed Motorun karşılaştırmalı değerlendirme kapısı, ısınma çalıştırmalarını atarak yinelenen ölçümü, ortalama / standart sapma / varyasyon katsayısı özetlemesini ve sürüm denetimine kaydedilmiş bir temel çizgiye karşı iki örnekli bir Welch t-testini; açık geçti / gerileme / kararsız / kesin tavan sonuçlarıyla birlikte uygular. Performans karşılaştırmalı değerlendirmeleri ayrıca özel, ayrı çalıştırılabilir bir takım ve bir PHPBench koşum takımı olarak da bulunur. Performans tahmin edilmez, bilinçli olarak ölçülür.

Evidence: Standard-backed “Belirtilen koşullar altında” ifadesi bir editoryal temkin değildir. Tanımın kendisidir. Spec: ISO/IEC 25010, §3.10 performans verimliliğini belirtilen zaman, verim ve kaynak koşullarına bağlar. Koşulları olmayan bir sayı, daha zayıf bir ölçüm değildir. O bir ölçüm değildir.

Evidence: Standard-backed Tekrarlanabilirlik ve yeniden üretilebilirlik çerçevesi Spec: ISO/IEC 17025 standardını izler: bir sonuç yalnızca önceden belirlenmiş koşullara göre güvenilirdir ve aynı ortamdaki tekrarlanabilirliği, ortamlar arası yeniden üretilebilirlikten ayırır. Koşullarını belirtemeyen bir karşılaştırmalı değerlendirme, ikisini de iddia edemez.

Pratikte “dürüst” görünüm bir rakam değil, bir yöntem ifadesidir:

<?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.

Bir karşılaştırmalı değerlendirmenin teslimatı, yeniden üretilebilir yöntem ve karardır. Ham milisaniye değeri, onu yeniden türetebileceğiniz yere, yani onu üreten derlemeye aittir — bunu yapamayacağınız belgelere kopyalanmaz.

İlk yanlış kanı, bir karşılaştırmalı değerlendirmenin bir sayı olduğudur. Bir karşılaştırmalı değerlendirme, bir dağılım üreten bir prosedürdür. Sayı, bu dağılımdan çekilmiş yalnızca tek bir değerdir. Birkaç çalıştırmanın en iyisini ya da tek bir sıcak çalıştırmayı raporlamak iyimserlik değildir. Bu, farklı bir şeyi (ideal koşullar altındaki en yüksek değeri) ölçmek ve onu tipik performans olarak etiketlemektir.

İkincisi, “istatistiksel olarak anlamlı gerileme yok” ifadesinin “eskisi kadar hızlı, garantili” anlamına geldiğidir. Bu, gözlemlenen farkın; bu çalıştırma sayısı ve bu varyans göz önüne alındığında, yöntemin gürültüden ayırt edebileceği sınırlar içinde olduğu anlamına gelir. Bu, sınırlı ve koşullu bir ifadedir. Tam da bu nedenle NextPDF, mutlak tavanı bağımsız bir koruma olarak tutar ve sonucu koşulsuz bir iddiaya sıkıştırmayı reddeder — ne kendisi için ne de başka herhangi birine karşı.

Bu sayfa, NextPDF’in performansı nasıl ölçtüğünü ve raporladığını anlatır. Bilinçli olarak hiçbir verim, gecikme veya bellek rakamı belirtmez. Bunlar, belirtilen koşullar altında sürekli tümleştirme yapıtlarından üretilen canlı sinyallerdir ve güncel değerler derlemeyle birlikte yayımlanır. Burada tekrarlanan bir sayı koşulsuz hale gelir ve eskir — bu sayfanın tam da karşı çıktığı başarısızlık türü. Alıntılanacak kararlı bir performans sabiti yoktur, bu nedenle hiçbiri alıntılanmaz. Burada sunulan şey, disiplinin kendisidir.

Çalıştırma sayısı, ısınma ilkesi, eşikler ve temel çizgi, motorun karşılaştırmalı değerlendirme yapılandırmasına aittir ve motorla, ayrıca üzerinde çalıştığı donanımla birlikte gelişir. Bu yapılandırma, bu açıklamayla herhangi bir noktada çelişirse asıl yetki ondadır. NextPDF, başka herhangi bir kitaplıkla — olumlu ya da olumsuz — hiçbir performans karşılaştırması yapmaz; çünkü aynı şekilde belirtilmiş koşullar olmadan yapılacak böyle bir karşılaştırma, tam da bu sayfanın reddetmek için var olduğu koşulsuz iddianın kendisi olurdu.

  • Altın dosya testi — aynı yeniden üretilebilirlik disiplininin, bit düzeyinde / yapısal / anlamsal profiller dahil olmak üzere çıktı doğruluğuna uygulanması.
  • NextPDF test piramidi — performans katmanının nerede yer aldığı ve neden her değişiklikte değil, isteğe bağlı çalıştığı.
  • Mutasyon testinin açıklaması — NextPDF’in gösteriş amaçlı bir sayı yerine kapı denetiminden geçmiş bir sinyal raporladığı bir başka yer.
  • Karşılaştırmalı değerlendirme — belirtilen koşullar altında tek bir sayı değil, ölçümlerin bir dağılımını üreten tanımlı bir prosedür.
  • Isınma çalıştırması — soğuk başlatma etkilerinin (JIT, önbellekler, otomatik yükleme) ölçülen sonucu kirletmemesi için atılan ilk yineleme.
  • Varyasyon katsayısı — standart sapmanın ortalamaya bölümü; bir çalıştırmanın güvenilecek kadar kararlı olup olmadığını değerlendirmek için kullanılan, birimden bağımsız bir yayılım ölçüsü.
  • Welch t-testi — eşit olmayan varyanslar için iki örnekli bir istatistiksel test; burada bir sonucun temel çizgiden gürültünün ötesinde farklılaşıp farklılaşmadığına karar vermek için kullanılır.
  • Etki büyüklüğü — istatistiksel anlamlılıktan bağımsız olarak bir farkın ne kadar büyük olduğu; NextPDF, bir gerileme bildirmeden önce ikisini de gerektirir.
  • Tekrarlanabilirlik / yeniden üretilebilirlik — ISO/IEC 17025 uyarınca, önceden belirlenmiş koşullar altında tek bir ortam içinde (tekrarlanabilirlik) veya ortamlar arasında (yeniden üretilebilirlik) sonuçların uyumu.
  • Mutlak tavan — istatistiksel karşılaştırmadan bağımsız olarak derlemeyi başarısız kılan kesin bir üst sınır.