Senaryo Profilleyici

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

Kod Profilleyici çalıştırılan tüm kodların profil seanslarını kaydetmenize ve CPU maliyetlerini özel kayıt ve görüntüleme ayarlarıyla görüntülemenize izin veren Geliştirici Konsolu içindeki bir araçtır.Luau işlevleri, yöntem çağrıları ve özellik erişimleri dahil olmak üzere tüm tür fonksiyon çağrılarını kaydedebilir.Bu araç, en fazla CPU kaynağı kullanan ve sözleşme imzalamayavaşlatan kodları tanımlamak için yararlıdır.

Profilleme oturumları kaydet

Kayıt yapmadan önce, kayıt ortamını seçmelisiniz:

  • İstemci (Varsayılan) — Müşteri tarafı kodlarını kaydeder, bunlar arasında LocalScripts ve Scripts ile RunContext , Client için ayarlanır.
  • Sunucu — Sunucu tarafı kodlarını kaydeder, bunlar arasında Scripts ile Class.BaseScript.RunContext|RunContext``Enum.RunContext.Server|Server veya Legacy ayarlanır.Senaryo Profilleyici, her oturumsonunda tüm toplanan sunucu tarafı verilerini temizler.

Ayrıca şu kayıt seçeneklerini ayarlayabilirsiniz:

DavranışSeçeneklerVarsayılanAçıklama
FrequansıSaniye başına 1000 kez (1 KHz)10,000 kez saniye başına (10 KHz)1 KHz10 KHz frekansı daha yüksek bir hassasiyete sahiptir, çünkü Script Profiler, seçili frekansınızdan daha sık yürütülen API çağrılarını almayabilir, ancak ayrıca daha yüksek bir performans maliyeti vardır.
Oturum Uzunluğu1 dakika5 dakika10 dakikaManuelManuelManuel seçenek, kaydı manuel olarak durdurmanızı gerektirir.
Canlı Anket DavranışıAçık/KapalıKapalıBu davranış, bir profilleme oturumu sırasında her saniye profilleme verilerini araştırır ve yeniler.

Yeni bir profilleme oturumunu kaydetmek için:

  1. Araçların bırakılmasını genişletin ve ScriptProfiler seçin.

    Dropdown menu of all Developer Console tools with the ScriptProfiler option highlighted for selection.
  2. Müşteri-sunucu menüsünü genişletin ve Müşteri veya Sunucu seçin.

    Dropdown menu with Client and Server options for selection.
  3. (Opsiyonel) Canlı oylama davranışını etkinleştirmek için Canlı kontrol kutusunu kontrol edin.

  4. (Opsiyonel) Seç Frekansı ve Süre seçerek kayıt frekansı ve oturum süre uzunluğunu seçin, varsayılan değerleri kullanmak istemiyorsanız.

  5. Profilleme oturumunu başlatmak için Başlat 'a tıklayın.Bir süre ayarlarsanız, Kript Profili, oturumdaki kalan süre ile bir geri sayım zamanlayıcısı görüntüler.

  6. Profilleme verilerini görüntülemek için Durdur veya kayıt bitene kadar bekleyin.

Profilleme verilerini oku

Bir oturum durduktan sonra, Kod Profilleyici her bir işlev çağrısının CPU süresinde ne kadara mal olduğunu gösteren bir tablo oluşturur.Tablo, en çok zaman harcananlardan en az zaman harcanana kadar işlev çağrılarını sıralar ve isimleriyle belirli işlevleri aramanıza izin verir.Aşağıdaki iki görünümü sağlar:

  • Çağrı Grafiği (Varsayılan): Çerçeve görevlerine dayalı olarak bir ağaç yapısına işlev çağrılarını kategorize eder ve görüntüler.Bu görüş, her görev kategorisini aynı kök altındaki düğümler olarak görüntüler ve onları işlevleri görüntülemek için genişletebilmenizi sağlar.Ayrıca ağacıdaki herhangi bir düğmeye tıklayarak dosya ve satır bilgilerini görebilirsiniz.Örneğin, Adım/KameraGiriş/<anonymous> ortaya çıkabilir Players.[LocalPlayer].PlayerScripts.PlayerModule.CameraModule.CameraInput:125 . Example callgraph view of a profiling session.
  • Fonksiyonlar : İşlevleri kategorize etmeden tüm işlevleri listeler. Example functions view of a profiling session.

Ayrıca depurasyon ihtiyaçlarınızı özelleştirmek için aşağıdaki görüntü seçeneklerinden de seçim yapabilirsiniz:

AdıSeçeneklerVarsayılanAçıklama
BirimMilisaniye (ms)Yüzde (%)msHer API çağrısına harcanan süreyi milisaniye veya toplam oturumseansının yüzdesine göre görüntüler.
Özgün OrtalamaKapalı1 saniye1 dakika5 dakika10 dakikaKapalıSeçilen değer tarafından her API çağrısına harcanan ortalama süreyi hesaplar.Oturum süresinden daha uzun bir seçenek seçerseniz, senaryo profilleyici ortalamayı hesaplamak için oturum süresini öngörür.Örneğin, kodu 5 dakika boyunca çalıştırırsanız, beklenen ortalama değeri görmek için 1 dakikalık bir oturum için 5 dakikalık seçeneği seçebilirsiniz.

Profilleme verilerini ihraç etme

Senaryo Profilleyici, kaydedilmiş profilleme verilerini JSON dosyası olarak ihraç etmenizi sağlar. Bir profilleme oturumundan kaydedilmiş verileri ihraç etmek için:

  1. Kript Profili penceresinde, İhracat 'a tıklayın.

  2. İhracat penceresinde, ihraç etmek istediğiniz profilleme oturumunu seçin. Özel bir isim ayarlamak istiyorsanız varsayılan dosya adını yeniden adlandırın.

  3. JSON dosyasını kaydetmek için İhracat 'a tıklayın.

    Example export window.

İhracat edilen JSON dosyası aşağıdaki alanları içerir:

  • Versiyon : Versiyon numarası.
  • OturumBaşlangıçSüresi : Oturum başlangıç süresini kaydeden milisaniye içinde bir zaman damgası.
  • OturumSonuSüresi : Oturum bitiş süresini kaydeden milisaniye içinde bir zaman damgası.
  • Kategoriler : Profilleme oturumunda kaydedilen bir dizi çerçeve görev kategorisi. Her giriş şunları içerir:
    • İsim : Her bir çerçeve görev kategorisinin adı.
    • DüğümId : Bir görev kategorisinin (düğüm) benzersiz tanımlayıcısı.Bu, Nodes matrisine dayalı bir 1 tabanlı indeks.Örneğin, 'deki 123. elemanı alarak ile düğümü araştırabilirsiniz.
  • Düğümler : Profilleme oturumuna kaydedilen bir dizi düğüm. Her giriş şunları içerir:
    • Toplam Süre : Düğümün CPU süresinde mikrosaniyelerde maliyetinin miktarı.
    • Fonksiyon ID'leri : Fonksiyonların benzersiz tanımlayıcılarının bir dizi.
    • Düğüm ID'leri : Bir düğüm ID'leri dizesi.
  • Fonksiyonlar : Profilleme oturumunda kaydedilen bir dizi işlev.
    • Toplam Süre : İşlevin CPU süresinde mikrosaniyelerde maliyetinin miktarı.
    • İsim : Eğer mevcutsa, işlevin adı.
    • Kaynak : Eğer mevcutsa, işlevin kaynağı.
    • Sıra : Fonksiyonun sıra numarası, mevcutsa.
    • Bayraklar : Herhangi bir özel işlev çalışma çevregösteren bir bit alanı. Şu anda aşağıdaki değerlere sahip olabilir:
      • 0 : 0. bit, Yerel KodGen altında yürütme için IsNative temsil eder.
      • 1 : 1. bit, bir eklentinin parçası olarak çalıştırma için IsPlugin temsil eder.
Örnek İhracat Edilen Profilleme Verileri

{
"Version":2,
"SessionStartTime":1704850750514,
"SessionEndTime":1704850751198,
"Categories":
[
{"Name":"Parallel Luau","NodeId":4},
{"Name":"Heartbeat","NodeId":1}
],
"Nodes":
[
{"TotalDuration":2530,"FunctionIds":[1],"NodeIds":[2]},
{"TotalDuration":2530,"FunctionIds":[2,5],"NodeIds":[3,7]},
{"TotalDuration":1267},
{"TotalDuration":7746,"FunctionIds":[3],"NodeIds":[5]},
{"TotalDuration":7746,"FunctionIds":[4],"NodeIds":[6]},
{"TotalDuration":7746},
{"TotalDuration":1263,"FunctionIds":[6],"NodeIds":[8]},
{"TotalDuration":1263,"FunctionIds":[7],"NodeIds":[9]},
{"TotalDuration":1263,"FunctionIds":[8],"NodeIds":[10]},
{"TotalDuration":1263}
],
"Functions":
[
{"Name":"main","TotalDuration":2530},
{"Source":"builtin_ManageCollaborators.rbxm.ManageCollaborators.Packages._Index.roblox_rodux-3.0.0.rodux.Store","Line":81,"TotalDuration":1267},
{"Name":"Script","TotalDuration":7746},
{"Source":"Workspace.Actor.Script","Line":1,"TotalDuration":7746},
{"Source":"builtin_DeveloperInspector.rbxm.DeveloperInspector.Packages._Index.DeveloperFramework.DeveloperFramework.UI.Components.Grid","Line":221,"TotalDuration":1263},
{"Source":"builtin_DeveloperInspector.rbxm.DeveloperInspector.Packages._Index.DeveloperFramework.DeveloperFramework.UI.Components.Grid","Name":"_update","Line":236,"TotalDuration":1263},
{"Source":"builtin_DeveloperInspector.rbxm.DeveloperInspector.Packages._Index.DeveloperFramework.DeveloperFramework.UI.Components.Grid","Name":"_getRange","Line":277,"TotalDuration":1263},
{"Source":"[C]","Name":"ScrollingFrame.CanvasPosition","TotalDuration":1263}
]
}