MikroProfil

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

The MicroProfiler is an optimization tool available in Roblox Studio and the Roblox client that provides detailed timing information for Task Scheduler 任务名为 标签 的.

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.

The Microprofiler frame graph, showing blue frames and detailed frame information.

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'ı

The Microprofiler with several bars higher than others.

Ç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ı

The lefthand side of the Microprofiler detailed view, with rows for threads.

Üç 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 yer
debug.profileend()
A custom label on the detailed view of the MicroProfiler.

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.

Many labels on the MicroProfiler, with a custom label taking up the majority of the processing time.

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.

A picture of the Settings menu on mobile, showing how to enable the MicroProfiler.

Ö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

The MicroProfiler web view.

Sunucu Profili Oluşturuluyor

Standart müşteri MicroProfiler'ının yanı sıra, sunucu aktivitesi hakkında kısa raporlar alabilirsiniz sunucu MicroProfiler kullanarak.

  1. Edit izinlerinizin olduğu bir deneyimde, CtrlAltF9 ile geliştirici konsolünü açın.

  2. Dizüstür menüsünde MicroProfiler seçin.

  3. Sunucu Profili bölümünde, her saniye per second'lik sayıyı (maksimum 60) ve profil için gereken saniyeyi (maksimum 4) belirtin.

  4. Kayıt Etmeyi Başlat'a tıklayın.

    The Developer Console MicroProfiler screen.

    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.

    The MicroProfiler web view with x-ray enabled.
    • 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

    The MicroProfiler flame graph.
  • 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.

    The MicroProfiler diff flame graph builder showing the left and right sides.

    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.

    The MicroProfiler diff flame graph.