holodepth

Performans & optimizasyon · Platform & kalite

FPS Mantığı: Kare Bütçesi ve SLA Defteri

«Kaç FPS?» sorusu çoğu zaman yanlış sorudur. Bu sayfa kareyi milisaniye bütçesi ve ürün SLA'sı olarak anlatır: ortalama değil taban, tepe değil kararlılık, sayı değil hangi işin hangi dilimi yediği.

Holodepth bu yaprağı fizik sabit adımı dersi veya XR stereo çift vergi turu olarak yazmaz. Bakış açısı: web 3D tesliminde her ekran yenilemesi bir gümrük dilimidir; dilimi aşan iş jank üretir; jank çoğu üründe «yavaş» değil «bozuk» sayılır. Fizik ile render saati ayrımı Three.js · FPS (fizik saati) yaprağındadır. Stereo çarpanı WebXR · Stereo & gecikme yaprağındadır. CPU/GPU ayrımı ve asset/LOD sonraki PLATFORM yapraklarındadır.

Sayfayı bitirdiğinizde şu cümleyi kurabilmelisiniz: «FPS, ms bütçesinin tersidir. Hedef yenilemeye bağlanır. Ortalama değil taban ve spike politikası yazılır. Bütçe dilimleri (JS / sahne / GPU) ayrılır. Jank ürün kusurudur. VSync/rAF ilişkisi bilinir. XR ve fizik saatleri ayrı izleklerdir. Sonraki kapı CPU / GPU bütçesidir.»

Bu sayfanın sınırı · komşu konularla ayrım

Bu sayfa PLATFORM performansında kare bütçesi / FPS SLA diplomasisini anlatır:

  • FPS ↔ ms çevirisi · yenileme hedefi
  • Ortalama vs taban · spike / jank
  • Bütçe dilimleri · rAF / ekran ilişkisi
  • Üç kare profili

Bilinçli olarak dışarıda bırakılan konular:

Kısa ayrım: Bu sayfa «kare dilimi nasıl yönetilir?» · Three FPS «fizik saati vs render» · CPU/GPU «iş hangi işlemcide?» · XR stereo «çift vergi + tazelik».

FPS, ms'in ters yüzüdür

60 FPS ≈ 16,7 ms; 30 FPS ≈ 33,3 ms; 120 FPS ≈ 8,3 ms. Holodepth üretim dilinde birincil birim çoğu zaman milisaniyedir: bütçeyi ms ile kesersiniz, raporu istersek FPS'e çevirirsiniz. «90'a çıkardık» cümlesi, hangi işin kaç ms indiğini söylemezse boştur.

Ticket'a hem hedef FPS (veya Hz) hem karşılık gelen ms tavanı yazılır. Böylece sanatçı «daha fazla draw», mühendis «bütçe aşıldı» aynı defteri okur.

Sayıyı övmek kolaydır; dilimi yönetmek zordur.

Hedef, ekran yenilemesine bağlanır

Kullanıcı 60 Hz panelde 120 FPS «üretmek» çoğu zaman ek tazelik vermez; bütçeyi yakar. Holodepth: ürün hedefi görüntüleme bağlamına bağlanır (masaüstü 60, oyun monitörü 144, mobil değişken, XR ayrı). Amaç, yenileme ile hizalı kararlı kareler sunmak; sanal yüksek FPS ile kendini kandırmak değil.

requestAnimationFrame ekran ritmine yaslanır; bu, oturum saatinin XR'de el değiştirmesinden farklıdır. Düz web vitrininde rAF metronomdur; bütçe bu tik'e sığmalıdır.

Ortalama yalan söyleyebilir; taban söylemez

58 FPS ortalama, ara sıra 80 ms spike ile «akıcı» değildir. Holodepth birincil metrikleri: frame time medyanı, 1% / 5% düşükler, uzun kare sayısı. Tepe FPS pazarlama; taban ms üründür.

  • Spike: tek uzun kare (GC, texture upload, senkron decode)
  • Jank: kullanıcının hissettiği düzensizlik; çoğu zaman spike + input gecikmesi
  • Drift: yavaş yavaş bütçe şişmesi (sızıntı, biriken listener, LOD'suz yaklaşma)

XR'de aynı fikir «kararlı taban» olarak stereo yaprağında peşine düşülür; burada genel web 3D / vitrin dilidir.

Bütçe dilimleri: tek torba yok

16,7 ms tek satır değildir. Holodepth kaba dilimler (ürün ince ayar yapar):

  1. JS / ana iş parçacığı: input, sahne grafı, animasyon güncelleme
  2. Render submission: draw çağrıları, state değişimi
  3. GPU: fill, overdraw, shader maliyeti
  4. Asenkron yan etkiler: yükleme, decode, worker sonucu birleştirme (spike üreticisi)

Hangi dilimin şiştiği bilinmeden «optimize» etmek rastgele kesmektir. Dilim teşhisi CPU/GPU yaprağına köprüler; burada dilimlerin varlığı zorunlu kabul edilir.

Jank: performans değil, kusur

Birçok ekip jank'i «biraz düşük FPS» sanır. Holodepth: jank, etkileşim güvenini kıran düzensizliktir; form submit'i veya orbit ortasında 100 ms donma, ortalama 55 FPS'i önemsiz kılar.

Ticket'a jank politikası yazılır: örneğin «etkileşim sırasında 33 ms üstü kare yok» veya «ilk 3 saniyede yükleme spike'ı kabul, sonra yasak». Ölçüm aracı Three profiling izleğinde derinleşir; burada ürün kapısı vardır.

Akıcı ortalama, çivili deneyimi aklamaz.

rAF, VSync ve «fazla çizmek»

Tarayıcı rAF ile ekranı besler; kaç kare «ürettiğiniz» ile kaç kare «gösterildiği» farklıdır. Bütçeyi aşınca kare atlanır veya birikir; kullanıcı ya takılır ya da gecikmeli giriş hisseder.

Holodepth: görünmeyen iş yapmayın. Sekme gizliyken, Offscreen / Page Visibility ile pahalı döngüyü kısmak bütçe dostudur. «Her zaman max FPS» pil ve termal tavanı da yer; mobil vitrinde özellikle.

Ölçmeden kesmeyin

Kare bütçesi spekülasyonla yönetilmez. Holodepth minimum ölçüm seti:

  • Frame time zaman serisi (yalnız FPS sayacı değil)
  • En az bir «kötü cihaz» ve bir «hedef cihaz» profili
  • İlk yükleme vs steady-state ayrımı
  • Etkileşim anı (orbit, tık, animasyon tetik) ayrı örneklem

Chrome Performance / Spector / motor istatistikleri araçtır; hangi SLA'nın ihlal edildiği bu sayfanın dilidir. CPU mi GPU mi sorusu sonraki yaprağa bırakılır; önce «bütçe aşıldı mı?» sorulur.

Üç kare profili

Ticket diline yapışan üç bütçe yoğunluğu:

  • 01 · Frame

    Vitrin 60

    Hedef
    ~16,7 ms · kararlı taban
    SLA
    Spike seyrek · jank yasak
    Risk
    Ortalama ile yetinmek
  • 02 · Frame

    Mobil tutumlu

    Hedef
    30–60 bilinçli · termal
    SLA
    Gizli sekme kıs · steady
    Risk
    Masaüstü bütçeyi kopyalamak
  • 03 · Frame

    Etkileşim sıkı

    Hedef
    Input anında düşük p99
    SLA
    Yükleme spike'ı ayrı yazılır
    Risk
    Decode'u frame'e gömmek

Holodepth perspektifleri

Ms ile konuşun

FPS özet, ms iş kararının dilidir. Ticket ikisini birden taşıyabilir; yalnız FPS taşıyamaz.

Tabanı sözleşmeye yazın

«Akıcı olsun» ölçülemez. Taban ms ve spike politikası ölçülür.

Dilim yoksa teşhis yoktur

Tek torba bütçe, yanlış optimizasyonu ödüllendirir.

Teşhis maddeleri

  1. Kare profili (vitrin / mobil / etkileşim) seçili mi?
  2. Hedef Hz ve ms tavanı yazılı mı?
  3. Ortalama yerine taban / p99 bakılıyor mu?
  4. Spike ve jank politikası net mi?
  5. Bütçe dilimleri (JS / submit / GPU / async) ayrıldı mı?
  6. İlk yükleme vs steady-state ayrı mı ölçüldü?
  7. Gizli sekme / arka plan maliyeti kısılıyor mu?
  8. Fizik saati veya XR stereo bu sayfaya karışmamış mı?

Holodepth içgörüsü

«FPS düşük» cümlesi çoğu zaman teşhis değil şikâyettir. Holodepth: hangi dilim, hangi ms, hangi SLA ihlali diye sorun; sayıya tapmayın.

Sonraki kapı: CPU / GPU

Bütçe aşıldığını gördükten sonra iş hangi işlemci ailesinde şişer? Sonraki sayfa CPU / GPU dilim teşhisini ve iş paylaşımı diplomasisini anlatır. Asset ve LOD maliyeti üçüncü yapraktadır.