MikroProfiler Roblox Studio ve Roblox istemcisinde mevcut bir performans optimizasyonu ve sorun giderme aracıdır.Detaylı zamanlama bilgileri sağlar görev planlayıcısı görevleri etiketler olarak adlandırılan görevler için.
- Sıradan görevlerin bir listesi için, etiket referansına bakın.
- Bir performans sorununu tanımlamak için MikroProfiler'i kullanmanın adım adım bir örneği için, MikroProfiler gezintisi bakın.
MikroProfiler temelleri
MikroProfili açmak için Studio veya istemci üzerinde CtrlAltF6 ( ⌘⌥F6 ) tuşuna basın.Ayrıca istemciye ayar menüsünü de kullanabilirsiniz.
Açıldığında, 3B görüntü penceresinin üstünde bir menü çubuğu görünür.Varsayılan modda, hareketli bir çubuk grafiği, Görev Planlayıcısı'nın her bir çerçevesinde kullanılan süreyi gösterir.

Genel olarak grafiğin orta yakınında çubuklar olmalıdır, ancak ani artışlar görebilirsiniz (değerlerde hızlı artışlar).Dikenler, bir görevin yerine getirilmesi için daha fazla süre alındığını gösterir, genellikle artan iş yükü nedeniyle.durum, hareketli birçok parça oluşturmak, hareket ve parça temaslarını işlemek için daha fazla fizik simülasyonundan daha fazla çalışma gerektirir, ki bu da hareketi ve parça temaslarını işlemek için daha fazla süre gerektirir.Aşağıdaki resim bir sivri uçun örneğini gösterir:

Çerçevelerin kaydını duraklatmak için, CtrlP ( ⌘P ) veya menü çubuğunda Duraklama tıklayın.Duraklarken, bir zaman çizelgesi görünür ve grafik üzerinde tıklayarak veya sürükleyerek çerçeveler arasında gezinebilirsiniz.
Çeşitli görüşlerin ve MicroProfiler arayüzünün nasıl gezineceğinin tam bir özeti için, MicroProfiler modları bakın.
İplikler
Birçok program gibi, Roblox aynı anda birkaç görev dizisi gerçekleştirmek için çok sayıda iş parçacığı kullanır.MikroProfiler ayrıntılı modunda, sol taraftaki her bir işlem için etiketleri görebilirsiniz.

Üç ana iş parçası türü vardır:
Ana/Renderasyon : Belki de mantıksızca, CPU üzerinde çalışır.Girişleri işler, Humanoids , animasyonlar/geçişler, fizik sahipliği, ses ve bekleme senaryosu devam eder.Ayrıca Stüdyo arayüzlerini günceller ve diğer iş parçacıklarını koordine eder.
İşçi ("RBX İşçisi"): Ana iş parçasına ağ, fizik ve yol bulma ile yardımcı olur.Modern CPU'lardaki çekirdek sayısı nedeniyle, muhtemelen birçok işçi iş parçasına sahipsiniz ve bunların çoğu herhangi bir zamanda uyku durumundadır.
Render ("GPU"): "Hazırlayın, yapın, sunun" mantığını takip eder. cihazgrafik işleme birimi (GPU) ile iletişim kurar.
- Hazırlan: Ana işlemden gelen bilgiler, görüntüleme modellerini güncellemek için kullanılır.
- Yap: 2B arayüzler de dahil olmak üzere sorun görüntüleme komutları yürütün.
- Mevcut: GPU ile senkronize eder.
Özel profiller
Eğer senaryolarınız karmaşık görevler yürütüyorsa, kodun kritik bölümlerini profilleştirerek çok uzun sürmediğinden emin olabilirsiniz.Kodu debug.profilebegin() ve debug.profileend() arasındaki işlev çağrıları arasında her şeyi yapmak için sarmalayın ve MikroProfiler zaman çizelgesinde bir etiket oluşturun.
Zor Çalışma Komutu
debug.profilebegin("Hard Work")-- Profillenecek koddebug.profileend()

MikroProfiler etiketlerine kullanılabilir sınırlı bir miktar bellek var.Bu bellek tükenirse, özel profil etiketleri zaman çizelgesinde anlamlı bir isim olarak görünmeyebilir.Bu sorundan kaçınmak için daha az etiket kullanın.kodbir bölümünü artık profillemenize gerek yoksa, bu işlevlere yapılan çağrıları yorumlayın veya kaldırın.
Örnek
Aşağıdaki kod örneği, her kare çalışan bir dummy işlevini RunService.PreSimulation etkinliğine bağlar, ki bu her kare çalışır.Bunu yapan her şey mümkün olduğunca verimli bir şekilde çalışmalıdır, bu nedenle bu işlev profilleme için iyi bir adaydır.
local RunService = game:GetService("RunService")
local function onPreSimulation()
debug.profilebegin("Hard Work")
-- Örnek zor çalışma: 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ırdığınızda ve MicroProfiler'ı ( CtrlP veya ⌘P ) duraklattığınızda, özel etiket gameStepped etiketinin altında görünür.

Zaman çizelgesindeki süresinden, işlevin diğer operasyonlara kıyasla çok fazla işlem süresi kullandığını söyleyebilirsiniz.
Çerçeve verilerini kaydet
Daha sonra inceleme için bir dizi çerçeve veri kaydetmek (veya başka biriyle paylaşmak) istiyorsanız, Döküm menüsünü kullanın.Motor, çerçeve verilerini Roblox günlükleri dizinindeki microprofile-<date>-<time>.html adlı bir dosyaya kaydeder.
Windows'ta, kontrol edin %LOCALAPPDATA%\Roblox\logs .
Evrensel Windows Platformu (UWP) uygulamasını kullanıyorsanız, \Users\<username>\AppData\Local\Packages\ROBLOXCORPORATION.ROBLOX_<hash>\LocalState\logs\ kontrol edin.
On macOS'ta, kontrol edin ~/Library/Logs/Roblox.
Bu HTML dosyaları aynı web tabanlı UI kullanır mobil cihazlar için canlı bağlantı ve sunucu dökümleri.
Profil mobil cihazlar
Mobil klienden MicroProfiler'a erişmek için, mobil cihazınız geliştirme makineniz olarak aynı ağa bağlı olmalıdır: aynı ağ .
Mobil cihazın Ayarlar menüsündeki MikroProfili etkinleştirin. Etkinleştirdikten sonra, menü bir IP adresi ve bir port numarası gösterir.

Örneğin, yukarıdaki ekran görüntüsünde, adres 192.168.1.166 ve port 1338 dir.Aynı ağdaki bir bilgisayardan, http://192.168.1.166:1338 kullanıcı arayüzünün web tabanlı bir sürümü için navigasyon yapın.

sunucuprofilleştir
Standart müşteri MicroProfiler'in yanı sıra, sunucu MicroProfiler'i kullanarak sunucu aktivitesinin kısa kopyalarını alabilirsiniz.
Düzenleme izniniz olan bir deneyimde, CtrlAltF9 geliştirici konsolunu açın.
Açılır menüde MikroProfilör seçin.
Sunucu Profilleyici bölümünde, saniye başına çerçeve sayısını (maksimum 60) ve profil oluşturacak saniye sayısını (maksimum 4) belirtin.
Tıklayın Kayıt Başlat .
Birkaç saniye sonra, Geliştirici Konsolu dosyaya yol sağlar, ki bu da bir standart döküm ile aynı yoldur.
Web arayüzünü kullan
Genel genel, MicroProfiler web arayüzü ayrıntılı mod ile benzer şekilde çalışır, ancak birkaç ek özelliğe sahiptir:
gruptarafından filtrelemeye ek olarak, iş parçası tarafından filtreleyebilirsiniz.
Dökümde en fazla süre alan bir görevin meydana gelmesine atlamak için CtrlF / ⌘F kullanınÖrneğin, computeLightingPerform her karede çalışır.Bir çöpçü ile 128 çerçeveli ararsanız, bitmesi en uzun süren çerçeğe atlayabilirsiniz.
Hafıza ataması için renk kodlamayı etkinleştirmek veya devre dışı bırakmak için X-Ray menüsünü kullanın.
- Ana çubuk grafiği içindeki daha hafif çerçeveler daha yüksek hafıza atamasını gösterir.
- Önizleme çubuğunun daha hafif bölümleri ve zaman çizelgesindeki daha hafif etiketler, daha yüksek hafıza atamasına sahip çerçevenin bölümlerini gösterir.
- X-ray modunda, bütün bellek atama sayısı yerine bellek atama toplam boyutunu göstermek için C tuşuna basın.
İhracat menüsünü kullanarak bir CPU veya bellek alev yığını grafiğini ihraç edin, dökümde yer alan tüm çağrı yığınlarını birleştiren özel bir görselleştirme, ebeveyn-çocuk hierarşisini koruyor ve süreye göre boyutlandırıyor.Alev grafikleri, özellikle yürütmesi uzun sürmeyen görevleri tanımlamak için kullanışlıdır (ve bu nedenle fark edilmesi zordur), ancak işlem süreleri önemli hale geldiği için çok sık çalışır.
Studio'da ayrıca yalnızca senaryolar için alev grafikleri oluşturabilirsiniz (执行时间 ve hafıza ataması).Web tabanlı alev grafiklerine kıyasla, Studio'daki olanlar aşağıdan yukarıya değil, aşağıdan yukarıya ve dramatik olarak daha uzun yakalama sürelerini destekliyor.
Deneyimin performansını zaman içinde tanımlamanıza yardımcı olabilecek bir farklılık alev grafiği oluşturmak için ikinci bir depolama dosyasını web arayüzüne sürükleyin ve bırakın.Yeni bir HTML dosyası ihraç etmek için Birleştir ve Karşılaştır 'a tıklayın.
Farklılık alev grafiği, daha fazla CPU veya bellek tüketen değişimi daha parlak renklerle gösteren daha büyük bir farkı vurgular.