The MicroProfiler is an optimization tool available in Roblox Studio and the Roblox client that provides detailed timing information for Task Scheduler 任务名为 标签 的.
- Sıradan görevlerin bir listesi için Etiket İşaretlemesi ile ilgili olarak.
- MicroProfiler'ı kullanarak performans sorununu belirlemek için bir adım-adım öğretici gösteren bir MicroProfiler Walkthrough görün.
MicroProfiler Temelleri
MicroProfiler'ı açmak için Studio'da veya client'da CtrlAltF6 ( ⌘1>⌥1> 3>F63> ) menülerini kullanabilirsiniz. Ayrıca, kullanıcı menüsünden ayarları da kullanabilirsiniz.
Açıldığında, 3D görüntü penceresinin üst kısmında bir menü çubuğu görünür. Standart modunda, hareketli bir çubuk grafiği, Görev Planlayıcının her kareindeki zamanı gösterir.
Barlar genellikle grafikteki orta noktadaki etrafta olmalıdır, ancak ani yükselişler (değerin hızlı artışı) görebilirsiniz. Barlar, bir görevi yerine getirmek için genellikle daha fazla zaman gerektiren daha fazla iş gücü gösterir (genellikle artan iş yükü). Aşağıdaki görüntü bir spike'ı
Çerçevelerin kaydedilmesini durdurmak için, CtrlP ( ⌘P )'i bas veya menü çubuğunda 2> Pause2>'i tıkla. Mola sırasında, bir timeline görünür ve sen değiştiriciyi grafikte tıklayarak veya sürükleerek çerçeveler arasında gezin
MicroProfiler arayüzünün geniş bir özeti ve MicroProfiler arayüzünü nasıl gezineceğinizle ilgili bilgiler için MicroProfiler Modları bakın.
Oklar
Birçok program gibi, Roblox birkaç başlıca görevi aynı anda yerine getirmek için birden fazla başlıca başlıca başlıca başlıca başlıca başlıca başlıca başlıca başlıca başlıca başlıca başlıca başlıca başlıca başlıca başlıca başlıca başlıca başlıca başlıca başlıca başlıca başlıca başlıca başlıca başlıca başlıca başlı
Üç ana işlemci türü vardır:
Ana Sayfa/Render : Belki mantıksız, CPU'de çalışır. İşlem girişini işleyen, Humanoids, animasyonları/tweening'i, fiziksel mülk sahibi, ses ve bekleyici senaryosunu yeniden işleyen. Ayrıca Studio arayüzlerini günceller ve diğer bağlantıları koordine eder.
Çalışanların Çalışmasına yardımcı olurken ağ, fizik ve yol bulma konularında ana çekirdek ile çalışır. Modern CPU'ların çekirdek sayısı nedeniyle, muhtemelen çok sayıda çalışanın çekirdeği vardır. Çalışanların Çalışmasına yardımcı olurken ağ, fizik ve yol bulma konularında ana çekirdek ile çalışır. Errors: Error: çal
Görüntüyü oluştur ("GPU") : Bir " hazırlık, performans, sunma " mantığını takip eder. cihazgrafik işlem birimi (GPU) ile iletişim kurar.
- Hazırlık: Aşağıdaki grafiklerdeki güncellemeyi gösteren modelleri güncellemeyi gösteren modelleri güncellemeyi gösteren modelleri güncellemeyi gösteren modelleri güncellemeyi gösteren modelleri güncellemeyi gösteren modelleri güncellemeyi gösteren modelleri güncellemeyi gösteren modelleri güncellemeyi gösteren modelleri güncellemeyi gösteren modelleri güncellemeyi gösteren modelleri güncellemeyi gösteren modelleri güncellemeyi gösteren modelleri güncellemeyi gösteren modeller
- Görev: 2D arayüzleri de dahil olmak üzere görselleştirme komutlarınızı yerine getirin.
- Mevcut: GPU ile senkronize edilir.
Özel Profilleme
Komplike görevleri yerine getiren kodlarınız varsa, kodun kritik bölümlerini profillemek için debug.profilebegin() ve debug.profileend() ile kodu örgütleyin ve MicroProfiler zamanlayıcıyla etiketler oluşturun.
HardWorkScript
debug.profilebegin("Hard Work")-- Burada profilleştirilecek kodun bulunduğu yerdebug.profileend()
MicroProfiler etiketlerine mevcut bir miktar hafıza var. Bu hafıza tükenirse, özel profil etiketleri belirli bir isim olarak timeline'de görünmeyebilir. Daha az etiket kullanın, bu sorunu önlemek için. Eğer kodunuzun bir kısmını profillemek istemiyorsanız, yorum yapın veya bu işlevlere çağrıları kaldırın.
Örnek
Aşağıdaki kod örneği, her kareyi yeniden oluşturan bir dummy işlevini RunService.PreSimulation etkinliğine bağlar, bu her kareyi yeniden oluşturur. Bu işlev genellikle her kareyi mümkün olduğunca verimli bir şekilde yeniden oluşturur, bu yüzden bu işlev profil için iyi bir adaydır.
local RunService = game:GetService("RunService")
local function onPreSimulation()
debug.profilebegin("Hard Work")
-- Örnek zor iş: iki değişkeni 200.000 kez değiştir
local a, b = 0, 1
for _ = 1, 200000 do
a, b = b, a
end
debug.profileend()
end
RunService.PreSimulation:Connect(onPreSimulation)
Deneyimi çalıştırın ve MicroProfiler'ı ( CtrlP veya ⌘P ) durdurduğunuzda, özel etiket altındaki 2> gameStepped2> etiketi görünür.
Zaman çizelgesindeki süresinden, işlevin diğer işlemlerle kıyasla çok fazla işlem süresi kullandığını söyleyebilirsiniz.
Çerçeveli Verileri Kaydetme
Daha son değerlendirme için bir set of frame data for later review (or to share with someone else), use the Dump menu. The engine saves the frame data to a file named microprofile-<date>-<time>.html in the Roblox logs directory.
- Windows'ta %LOCALAPPDATA%\Roblox\logs 'i kontrol edin.
- On macOS, check ~/Library/Logs/Roblox .
Bu HTML dosyaları, mobil cihazlar için canlı bağlantı için web tabanlı UI ve sunucu dumps ile aynı kullanılır.
Mobil Cihazlarda Profilleştirme
Mobil cihazınız, geliştirme makinenizin aynı ağına bağlı olmalıdır.To access the MicroProfiler from the mobile client, your mobile device must be connected to the same network as your development machine.
Mobil cihazın Ayarlar menüsündeki MicroProfiler'ı etkinleştirin. Etkinleştirdiktan sonra menü, bir IP adresi ve bir port numarası gösterir.
Örneğin, aşağıdaki ekran görüntüsünde, adres 192.168.1.166 ve port 1338 . Aynı ağ üzerindeki bir bilgisayardan, MicroProfiler kullanıcı arayüzünün web tabanlı versiyonu için
Sunucu Profili Oluşturuluyor
Standart müşteri MicroProfiler'ının yanı sıra, sunucu aktivitesi hakkında kısa raporlar alabilirsiniz sunucu MicroProfiler kullanarak.
Edit izinlerinizin olduğu bir deneyimde, CtrlAltF9 ile geliştirici konsolünü açın.
Dizüstür menüsünde MicroProfiler seçin.
Sunucu Profili bölümünde, her saniye per second'lik sayıyı (maksimum 60) ve profil için gereken saniyeyi (maksimum 4) belirtin.
Kayıt Etmeyi Başlat'a tıklayın.
Birkaç saniye sonra, Geliştirici Konsolu, bir standart döküm ile aynı yolu sağlar.
Web UI'yi kullanıyor
Genel genel, MicroProfiler web UI aynı şekilde ayrıntılı mod ile çalışır, ancak birkaç ek özelliği vardır:
grupfiltrelenmesine ek olarak, bir thread'e filtreleyebilirsiniz.
Aşağıdaki kısayolları kullanarak CtrlF / ⌘0>F0>'ye atlayın, bu da çıkıştaki en çok zamanı alan göre değiştirilebilir. Örneğin, 4>translateLightingPerform4> her kareyi içinde 1
Hafıza ayrılışı için renk kodlamasını etkinleştirmek veya devre dışı bırakmak için Röntgen menüsünü kullanın.
- Ana bar grafiğindeki daha hafif kareler daha yüksek hafıza ayrılımını gösterir.
- Önizleme barındaki daha az bölümlü bölümler ve zaman çizelgesindeki daha düşük etiketler, daha yüksek bellek ayrılımına sahip bölümleri gösterir.
- Röntgen modunda, C tuşuna basarak hafıza ayrılımlarının toplam büyüklüğünü gösterir, ayrılımların sayısını gösterir.
İhracat menüsü kullanılarak bir CPU veya hafıza alev grafiği, özel bir görselleştirme, tüm çağrı staplarını içeren bir özel grafik oluşturulur. Alev grafiği özellikle yük işlemlerini yerine getirmeyi kolaylaştırır (ve bu nedenle özellikle belirgindir) ve yük işlemlerini yüksek frekans
Bir ikinci dump dosyasını web UI'sine sürükle ve bir grafik oluşturmak için, bu grafiklerin geliştiricilerinizin performansını takip etmesine yardımcı olabilir. Geri Çekme seçeneğine tıklayarak yeni bir HTML dosyasını dışa aktar.
Farklı renkli alev grafiği, daha fazla CPU veya hafıza tüketen doldurma (gitti veya sağ)yı vurgulayarak daha büyük bir farkı gösterir.