Script Profiler

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

Script Profiler, Geliştirici Konsolu içinde yer alan, çalışan tüm betiklerin profilini kaydetmenizi ve özel kayıt ve görüntüleme ayarlarıyla CPU zaman maliyetlerini görüntülemenizi sağlayan bir araçtır. Luau fonksiyonları, yöntem çağrıları ve özellik erişimleri dahil olmak üzere tüm türdeki işlev çağrılarını kaydedebilir. Bu araç, en fazla CPU kaynaklarını tüketen ve performansı yavaşlatan betikleri tanımlamak için faydalıdır.

Profiling oturumlarını kaydet

Kayıttan önce, kayıt ortamını seçmeniz gerekir:

  • İstemci (Varsayılan) — LocalScripts ve Scripts ile RunContext değerinin Client olarak ayarlandığı istemci tarafı betiklerini kaydeder.
  • SunucuScripts ile RunContext değerinin Server veya Legacy olarak ayarlandığı sunucu tarafı betiklerini kaydeder. Script Profiler, her oturumun sonunda tüm toplanan sunucu tarafı verilerini temizler.

Ayrıca aşağıdaki kayıt seçeneklerini de ayarlayabilirsiniz:

DavranışSeçeneklerVarsayılanAçıklama
Sıklık1.000 kez saniyede (1 KHz)
10.000 kez saniyede (10 KHz)
1 KHz10 KHz sıklığı daha yüksek hassasiyete sahiptir, çünkü Script Profiler, seçtiğiniz sıklıktan daha sık gerçekleşen API çağrılarını yakalayamayabilir, ancak daha yüksek bir performans maliyeti vardır.
Oturum Süresi1 dakika
5 dakika
10 dakika
Manuel
ManuelManuel seçenek, kaydı manuel olarak durdurmanızı gerektirir.
Canlı Anket DavranışıAçık
Kapalı
KapalıBu davranış, bir profil oluşturma oturumu sırasında her saniye profil verilerini anket yapar ve yeniler.

Yeni bir profil oluşturma oturumu kaydetmek için:

  1. ScriptProfiler'ı seçmek için araçlar açılır menüsünü genişletin.

    Tüm Geliştirici Konsolu araçlarının açılır menüsü, ScriptProfiler seçeneği vurgulanmış.
  2. İstemci veya Sunucu'yu seçmek için istemci-sunucu açılır menüsünü genişletin.

    Seçim için İstemci ve Sunucu seçenekleri olan açılır menü.
  3. İSTEĞE BAĞLI
    Canlı anket davranışını etkinleştirmek için Canlı onay kutusunu işaretleyin.

  4. İSTEĞE BAĞLI
    Varsayılan değerleri kullanmak istemiyorsanız kayıt sıklığını ve oturum süresini seçmek için Sıklık ve Zaman'ı seçin.

  5. Profil oluşturma oturumuna başlamak için Başlat'a tıklayın. Bir süre ayarladıysanız, Script Profiler oturumda kalan süreyi gösteren bir geri sayım sayacı görüntüler.

  6. Profil verilerini görüntülemek için Durdur'a tıklayın veya kaydın bitmesini bekleyin.

Profil verilerini oku

Bir oturum durduktan sonra, Script Profiler her işlev çağrısının CPU zamanında ne kadar maliyet oluşturduğunu gösteren bir tablo oluşturur. Tablo, işlev çağrılarını en çok zaman harcayanlardan en az zaman harcayanlara doğru sıralar ve belirli işlevleri adlarına göre aramanıza olanak tanır. Aşağıdaki iki görünümü sağlar:

  • Çağrı grafiği (Varsayılan): İşlev çağrılarını çerçeve görevlerine dayalı bir ağaç yapısında kategorize eder ve görüntüler. Bu görünüm, her görev kategorisini aynı kök altında düğümler olarak gösterir ve işlevleri görüntülemek için genişletmenize olanak tanır. Ayrıca, ağaçtaki herhangi bir düğümün üzerine gelerek dosya ve satır bilgilerini görüntüleyebilirsiniz. Örneğin, Stepped/CameraInput/<anonymous> Players.[LocalPlayer].PlayerScripts.PlayerModule.CameraModule.CameraInput:125 bilgisini açığa çıkarabilir. Profil oluşturma oturumunun örnek çağrı grafiği görünümü.
  • Fonksiyonlar: Tüm işlevleri görevler tarafından kategorize etmeden listeler. Profil oluşturma oturumunun örnek fonksiyonlar görünümü.

Ayrıca hata ayıklama ihtiyaçlarınıza göre özelleştirmek için aşağıdaki görüntüleme seçeneklerinden birini seçebilirsiniz:

AdSeçeneklerVarsayılanAçıklama
BirimMilisaniye (ms)
Yüzde (%)
msHer API çağrısında harcanan zamanı milisaniye veya toplam kayıt oturumunun yüzdesi olarak görüntüler.
OrtalamaKapalı
1 saniye
1 dakika
5 dakika
10 dakika
KapalıSeçilen değere göre her API çağrısında harcanan ortalama süreyi hesaplar. Oturum süresinden daha uzun bir seçenek seçerseniz, Script Profiler ortalama hesaplamak için oturum süresini dışarıdan tahmin eder. Örneğin, 1 dakikalık bir oturum için 5 dakikalık seçeneği seçerek kodu 5 dakika çalıştırırsanız beklenen ortalama değeri görebilirsiniz.

Profil verilerini dışa aktar

Script Profiler, kaydedilen profil verilerini JSON dosyası olarak dışa aktarmanıza olanak tanır. Bir profil oluşturma oturumundan sonra kaydedilen verileri dışa aktarmak için:

  1. Script Profiler penceresinde Dışa Aktar'a tıklayın.

  2. Dışa aktarma penceresinde, dışa aktarmak istediğiniz profil oturumunu seçin. Varsayılan dosya adını özelleştirmek istiyorsanız yeniden adlandırın.

  3. JSON dosyasını kaydetmek için Dışa Aktar'a tıklayın.

    Örnek dışa aktarma penceresi.

Dışa aktarılan JSON dosyası aşağıdaki alanları içerir:

  • Sürüm: Sürüm numarası.
  • OturumBaşlangıçZamanı: Oturum başlangıç zamanını kaydeden milisaniye cinsinden bir zaman damgası.
  • OturumBitişZamanı: Oturum bitiş zamanını kaydeden milisaniye cinsinden bir zaman damgası.
  • Kategoriler: Profil oluşturma oturumunda kaydedilen çerçeve görev kategorilerinin bir dizisi. Her giriş şunları içerir:
    • Ad: Her çerçeve görev kategorisinin adı.
    • DüğümId: Bir görev kategorisinin (düğüm) benzersiz tanımlayıcısı. Nodes dizisinde 1 tabanlı bir indeks. Örneğin, NodeId'si 123 olan düğümü bulmak için Nodes dizisindeki 123. öğeyi alabilirsiniz.
  • Düğümler: Profil oluşturma oturumunda kaydedilen düğümlerin bir dizisi. Her giriş şunları içerir:
    • ToplamSüre: Düğümün CPU zamanında ne kadar maliyet oluşturduğunun mikro saniye cinsinden miktarı.
    • FonksiyonId'leri: İşlevlerin benzersiz tanımlayıcılarının bir dizisi.
    • DüğümId'leri: Düğüm ID'lerinin bir dizisi.
  • Fonksiyonlar: Profil oluşturma oturumunda kaydedilen işlevlerin bir dizisi.
    • ToplamSüre: İşlevin CPU zamanında ne kadar maliyet oluşturduğunun mikro saniye cinsinden miktarı.
    • Ad: İşlevin adı, mevcutsa.
    • Kaynak: İşlevin kaynağı, mevcutsa.
    • Satır: İşlevin satır numarası, mevcutsa.
    • Bayraklar: Herhangi bir özel işlev yürütme ortamını gösteren bir bit alanı. Şu anda aşağıdaki değerlere sahip olabilir:
      • 0: 0. bit, Yerel Kod Üretimi altında IsNative'yi temsil eder.
      • 1: 1. bit, bir eklenti olarak yürütmeyi temsil eden IsPlugin'dir.
Örnek Dışa Aktarılan Profil Verisi
{
"Version":2,
"SessionStartTime":1704850750514,
"SessionEndTime":1704850751198,
"Categories":
[
{"Name":"Paralel Luau","NodeId":4},
{"Name":"Kalp Atışı","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}
]
}
©2026 Roblox Corporation. Roblox, the Roblox logo and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.