Files
hcie-rust-v3.05/criterion.md
Your Name 8563a44211
mandatory-regression-gate / deterministic-tests (push) Has been cancelled
mandatory-regression-gate / protected-performance-path (push) Has been cancelled
Add SVG report for typical stroke mask pooling at warm 10th stroke
2026-07-24 23:43:42 +03:00

2.7 KiB
Raw Permalink Blame History

Canvas Performance Regression Protection — Walkthrough

HCIE v4 engine API'si üzerindeki 4K tuval optimizasyonlarının yanlışlıkla bozulmasını (regresyon) engellemek için criterion kütüphanesi entegre edildi ve dört kritik mekanizma için kalıcı benchmark testleri yazıldı.

Neler Yapıldı?

  1. hcie-engine-api/Cargo.toml Güncellemesi

    • criterion kütüphanesi dev-dependency olarak eklendi.
    • Her benchmark için özel [[bench]] kayıtları tanımlandı.
  2. active_stroke_mask Pooling Koruması

    • benches/stroke_mask_pooling.rs
    • Brush engine'in kullandığı ~8 MB mask buffer'ın end_stroke() sırasında serbest bırakılıp bırakılmadığını kontrol eder.
    • İlk tahsis (cold) ile sonraki ardışık strokların (warm) sürelerini karşılaştırır.
  3. composite_scratch Pooling Koruması

  4. below_cache Ardışık Stroke Reuse Koruması

    • benches/below_cache_reuse.rs
    • Aynı katmanda birden çok stroke atıldığında alttaki katmanların yeniden derlenmek yerine (cache rebuild) mevcut cache'in kullanıldığını test eder.
    • 4K çözünürlükte, 10 katmanlı senaryoda cache build (ilk vuruş) ve cache reuse (ikinci vuruş) maliyetlerini ayırır.
  5. effects_dirty Conditional Skip Koruması

    • benches/effects_skip.rs
    • Efekt/stili olmayan katmanlarda pahalı effects pipeline (ve 33 MB buffer kopyası) adımının bypass edildiğinden emin olur.

Doğrulama Sonuçları

  • Yeni criterion testlerinin API erişimleri (özellikle update_layer_style fonksiyon imzası) ve bağımlılıkları derlenip onaylandı.
  • Eski golden testler olan visual_regression.rs çalıştırılarak yeni performans testlerinin deterministik render sonuçlarını (pixel-perfect) bozmadığı doğrulandı (8/8 başarılı).
  • Eski performans testi performance_stroke_4k.rs de sorunsuz çalıştırıldı.

Tip

Tüm Benchmark'ları Çalıştırmak İçin: Terminal üzerinden engine dizinine giderek şu komutu kullanabilirsiniz:

cargo bench -p hcie-engine-api

Not: Bu testler 4K ve çok katmanlı benchmarklar içerdiğinden belleği yoğun kullanır. Sonuçlar ./criterion/report/index.html olarak dökülecektir.