Kod Geliştiricisi bir Developer Console içindeki bir araçtır, böylece tüm çalışan scriptlerin profil giriş seslerini kaydedip özelleştirilmiş kayıt ve görüntü ayarlarıyla CPU'nun işletim maliyetlerini görebilirsiniz. Tüm türlerdeki işlev çağrılarını, yö
Kayıt Etme Profili Oluşturma Sesleri
Kaydedmeden önce, kayıt ortamını seçmeniz gerekir:
- Klient ** (Varsayılan) — Klient tarafındaki kodları kaydeder, bunların içinde LocalScripts ve Scripts ile 0> Class.BaseScript.RunContext|RunContext0> ayarı 3> Enum.RunContext.Client|Client 3> .
- Sunucu — Sunucu-taraflı kodları kaydeder, Scripts ile RunContext arasında 0> 1> Enum.RunContext.Server|Server1> veya 4> 3> Enum.RunContext.Legacy|Legacy 4> . Kript Pro
Ayrıca şu kayıt seçeneklerini de ayarlayabilirsiniz:
Davranış | Seçenekler | Varsayılan | Açıklama |
---|---|---|---|
Frekans | 1 saniye başına 1.000 kez (1 KHz)10.000 kez başına 1.000 kez (10 KHz) | 1 Khz | 10 KHz frekansı, seçili frekansınızden daha sık çalıştığı API çağrılarını almayabilir, ancak daha yüksek performans maliyeti vardır. |
Oturum Uzunluğu | 1-dakika5-dakika10-dakikaManuel | Manuel | Manuel seçenek, el yazmasını durdurmanızı gerektirir. |
Canlı Anket Davranışı | Açık/Kapalı | Kapalı | Bu davranış, profil oluşturma ve yenilenmesi için her saniye profil verilerini yenilenir. |
Yeni bir profil oturumkaydetmek için:
Aç Geliştirici Konsolu .
Araçların menüsünü genişletin ScriptProfiler seçmek için.
Müşteri veya Sunucu seçmek için klient-sunucu menüsünü genişletin.
(Opcional) Canlı seçeneğini kontrol ederek canlı anket davranışını etkinleştirin.
(isteğe bağlı) Freq ve Time seçerek kayıt frekansı ve oturum süresini seçmezseniz varsayılan değerleri kullanmayın.
Profilleştirme oturumbaşlatmak için Başla tıklayın. Eğer bir süre ayarlarsanız, Script Profiler, oturumgeri kalan süresiyle bir sayışım sayacı gösterir.
Profil grafiklerini görmek için kaydı bitirene kadar Dur ya da bekleyin.
Profil Verileri Okuyor
Bir oturum durduktan sonra, Script Profiler, her işlevin CPU süresinde ne kadar para harcadığını gösteren bir tablo oluşturur. Tablo, en çok zaman harcayan işlevleri en az zaman harcayan işlevlerle sıralar ve isimlerine göre özel işlevleri arayabilirsiniz. Aşağıdaki iki görüntüyü sağlar:
- Callgraph (Varsayılan): Kategoriyi kullanıcının ekranına göre sıralar ve işlevleri gösterir. Bu görüntü, her kategoriyi aynı kök altında gösterir ve işlevleri görebilmenizi sağlar. Ayrıca, Stepped/CameraInput/<
- Fonksiyonlar : Bütün görevleri olmayan işlevleri listeler.
Ayrıca, şu görüntü seçeneklerinden de depresyon ihtiyaçlarınızı ayarlayabilirsiniz:
İsim | Seçenekler | Varsayılan | Açıklama |
---|---|---|---|
Birim | Millisaniye (ms) Yüzde (%) | ms | Toplam kayıt oturumher API çağrısı için harcanan zamayı gösterir. |
Orta | Off1-saniye1-dakika5-dakika10-dakika | Kapalı | Seçili değer tarafından her API çağrısı için ortalama süreyi hesaplar. Eğer oturum uzunluğundan daha uzun bir seçenek seçerseniz, Script profileri oturum uzunluğunu hesap etmek için ortalamayı hesaplar. Örneğin, 5 dakikalık bir oturum için 1 dakika bekleme süresini seçerseniz, kodu 5 dakika boyunca çalıştı |
Profil Verileri İhracatı
Script Profiler, profil çekim işlemlerinin kaydedilmiş verilerini bir JSON dosyası olarak ihraç etmenizi sağlar. Bir profil çekim seansından sonra kaydedilen verileri ihraç etmek oturum:
Script Profiler penceresinde, İhracatı İçe aktar seçeneğine tıklayın.
Araç penceresinde, ihraç etmek istediğiniz profilasyon oturumunu seçin. Eğer özel bir isim belirlemek istiyorsanız, varsayılan dosya ismini değiştirin.
JSON dosyasını kaydetmek için Dışa Aktar seçeneğine tıklayın.
Aktarılan JSON dosyasında şu alanlar bulunur:
- Versiyon : Versiyon numarası.
- OturumBaşlangıcıZamanı : Oturum başlangıcı zamanını ayırt eden milisaniye olarak bir zaman damgası.
- OturumBitmesiZamanı : Oturum bitmesi zamanını kaydeden milisaniye'lik bir zaman damgası.
- Kategoriler : profilleme oturumuna kaydedilen bir dizi çerçeveli görev kategorisi. Her giriş içindeki her bir öğe:
- İsim: Her kare görevi kategorisinin adı.
- NodeId : Bir görev kategorisinin (dizin) benzersiz kimliği. 1-başlıklı bir İndeksi ile Nodes matrisine göz atabilirsiniz. Örneğin, 123. elemanı NodeId ile alarak 123. elemanın üzerindeki 123. elemanı g
- Knotlar : profilleme oturumuna kaydedilen bir dizi giriş. Her giriş içerir:
- Toplam Süre : Bobinin CPU süresinde mikrosaniye başına mal olması gereken süre.
- FunctionIds : Fonksiyonların benzersiz kimlikleri bir matrisi.
- NodeIds : Bir dizi node ID'si.
- Fonksiyonlar : profilleme oturumuna kaydedilen bir dizi işlev.
- Toplam Süre : Fonksiyonun CPU süresinde ne kadar para ödediğini gösterir.
- İsim: : İşlevin adı, mevcutsa.
- Kaynak : Fungsiyonun kaynağı, mevcutsa.
- Satır : Eğer mevcutsa işlevin satır numarası.
- Bayraklar : Belirli bir işlev çalışma çevregösteren biraz bir alan. Şu anda şu değerleri sağlayabilir:
- 0 : Native CodeGen'de yürütülme için IsNative temsil eder.
- 1 : 1. bit, bir eklenti'in bir parçası olarak IsPlugin için çalıştırılır.
Aktarılan Örnek Profil 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}
]
}