Bu kılavuz, MicroProfiler'ı kullanarak bir oyundaki problemli bir yönü bulmayı ve kök nedenini belirlemeyi gösterir. Oyunu indirin, Stüdyo'da Dosyadan Aç seçeneğini kullanın ve ilerleyin.
Sorunu Tanımlayın
Oyunu Stüdyo'da açtıktan sonra, F5 veya Oynat butonunu kullanarak test etmeye başlayın.
Kare hızı makul görünüyor, ancak bu boyut ve kapsamda bir oyun için olması gereken kadar akıcı değil. Performans Özeti üstverisini göstermek için CtrlShiftF5 (⌘ShiftF5) tuşlarına basın.

Kare hızının saniyede 60 kare (FPS) altında olduğunu not edin.
MicroProfiler'ı açmak için CtrlAltF6 (⌘⌥F6) tuşlarına basın.

Kare sürelerinin tutarlı olduğunu not edin - çubuklar yaklaşık olarak aynı yükseklikte - dolayısıyla düşük kare hızına neden olan şey her bir karede çalışıyor, ara sıra çalışıp kare süresi sıçramalarına neden olmuyor.
MicroProfiler'ı duraklatmak için CtrlP (⌘P) tuşlarına basın. Klavye kısayolu ile duraklatmak, ayrıntılı moda geçer.
Grafiği panlamak için tıklayıp sürükleyin. İşçi iş parçacıklarından birinin ana iş parçacığına kıyasla çok fazla işlem süresi kullandığını not edin. RunService.Stepped üzerine gelerek, render işleminin ne kadar sürdüğünü not edin.

Zaman çizelgesindeki yığılmış çubuklar, bir kod hiyerarşisini gösterdiğinden, sorunu tanımlamak için daha alt katmanlara gelerek üzerlerine gelin.


LocalScript etiketini not edin, bu scriptin adını gösterir ve Raycast etiketi ise problemin raycast işlemine bağlı olabileceğini gösterir.
Sorun Giderme Etiketleri Oluşturun
Artık MicroProfiler bir başlangıç noktası sağladığına göre, problemli kodu sorun gidermeye başlayabilirsiniz.
Oynatma testini durdurun ve Explorer penceresinde localscript için filtreleme yaparak dosyayı bulun.

raycast araması, bu kod bölümünün muhtemelen oyunun kötü performansına neden olduğunu gösteriyor:
local RAYS_PER_SECOND = 1500local function onStepped()for _ = 1, RAYS_PER_SECOND dolocal startPosition = getRandomPosition()local endPosition = getRandomPosition()local direction = endPosition - startPositionWorkspace:Raycast(startPosition,endPosition)endendRunService.Stepped:Connect(onStepped)Özellikle bu kodun her saniyede 1.500 ışın yaydığını görebilirsiniz.
Bu kod bölümünün render gecikmesine neden olduğunu doğrulamak için işlevin içeriğini debug.profilebegin() ve debug.profileend() ile sarın:
local function onStepped()debug.profilebegin("Raycast Spam")for _ = 1, RAYS_PER_SECOND dolocal startPosition = getRandomPosition()local endPosition = getRandomPosition()local direction = endPosition - startPositionWorkspace:Raycast(startPosition,endPosition)enddebug.profileend()end
Sorunu Doğrulayın ve Düzeltin
Oyunu test etmeye başlayın ve MicroProfiler'ı tekrar açın.
MicroProfiler'ın artık özel etiketi gösterdiğini not edin, bu işlevin gerçekten kök neden olduğunu gösterir.

Oynatma testini durdurun.
onStepped() işlevini ve RunService.Stepped:Connect(onStepped) bağlantısını silin veya yorum satırı haline getirin.
Oyunu tekrar test edin ve Performans Özetine tekrar bakın.

Kare hızındaki büyük iyileşmeyi ve MicroProfiler grafiğinde karşılık gelen düşüşü not edin.