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:
- Fizik fixed-step / iki saat → Three.js · FPS mantığı
- CPU vs GPU iş paylaşımı → CPU / GPU
- Draco, texture, LOD → Asset sıkıştırma & LOD
- XR stereo / motion-to-photon → Stereo & gecikme
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):
- JS / ana iş parçacığı: input, sahne grafı, animasyon güncelleme
- Render submission: draw çağrıları, state değişimi
- GPU: fill, overdraw, shader maliyeti
- 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
- Kare profili (vitrin / mobil / etkileşim) seçili mi?
- Hedef Hz ve ms tavanı yazılı mı?
- Ortalama yerine taban / p99 bakılıyor mu?
- Spike ve jank politikası net mi?
- Bütçe dilimleri (JS / submit / GPU / async) ayrıldı mı?
- İlk yükleme vs steady-state ayrı mı ölçüldü?
- Gizli sekme / arka plan maliyeti kısılıyor mu?
- 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.