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, tüm çalışan scriptlerin profilini kaydetmenizi ve özel kayıt ve görüntüleme ayarları ile CPU zaman maliyetlerini görmenizi sağlayan bir Developer Console aracıdır. Luau fonksiyonları, metod çağrıları ve özellik erişimleri dahil olmak üzere tüm fonksiyon çağrılarının kaydını tutabilir. Bu araç, en fazla CPU kaynaklarını tüketen ve performansı yavaşlayan scriptleri tanımlamak için yararlıdır.

Profiling oturumlarını kaydetme

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

  • İstemci (Varsayılan) — LocalScripts ve Scripts için RunContext ayarı Client olan istemci tarafı scriptlerini kaydeder.
  • SunucuScripts için RunContext ayarı Server veya Legacy olan sunucu tarafı scriptlerini kaydeder. Script Profiler, her oturumun sonunda toplanan tüm sunucu tarafı verilerini temizler.

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

DavranışSeçeneklerVarsayılanAçıklama
SıklıkSaniyede 1000 kez (1 KHz)
Saniyede 10,000 kez (10 KHz)
1 KHz10 KHz sıklığı daha yüksek hassasiyet sunar, çünkü Script Profiler, seçtiğiniz sıklıktan daha sık gerçekleştirilen API çağrılarını yakalayamayabilir, ancak daha yüksek bir performans maliyetine sahiptir.
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 sorgular ve yeniler.

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

  1. ScriptProfiler seçeneği için araç menüsünü genişletin.

    ScriptProfiler seçeneği vurgulanmış olan tüm Developer Console araçlarının açılır menüsü.
  2. İstemci-sunucu açılır menüsünü genişleterek İstemci veya Sunucu seçin.

    Seçim için İstemci ve Sunucu seçeneklerini içeren açılır menü.
  3. (İsteğe bağlı) Canlı anket davranışını etkinleştirmek için Canlı onay kutusunu işaretleyin.

  4. (İsteğe bağlı) Varsayılan değerleri kullanmak istemiyorsanız kayıt sıklığı ve oturum süresi uzunluğunu seçmek için Sıklık ve Zamanı seçin.

  5. Profil oluşturma oturumuna başlamak için Başlat butonuna tıklayın. Bir süre belirlediyseniz, Script Profiler oturumun kalan süresini 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 okuma

Bir oturum durduktan sonra, Script Profiler her fonksiyon çağrısının CPU zamanı maliyetinin ne kadar sürdüğünü gösteren bir tablo oluşturur. Tablo, fonksiyon çağrılarını en çok harcanan zamandan en az harcanan zamana sıralar ve adlarına göre belirli fonksiyonları aramanıza olanak tanır. Aşağıdaki iki görüntüyü sağlar:

  • Callgraph (Varsayılan): Fonksiyon çağrılarını çerçeve görevlerine göre bir ağaç yapısında kategoriler ve görüntüler. Bu görünüm, her görev kategorisini aynı kökün altında düğümler olarak gösterir ve fonksiyonları görüntülemek için genişletmenize izin verir. 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> belki Players.[LocalPlayer].PlayerScripts.PlayerModule.CameraModule.CameraInput:125 bilgisini ortaya çıkarabilir. Bir profil oluşturma oturumunun örnek çağrı grafiği görünümü.
  • Fonksiyonlar: Tüm fonksiyonları görevlere göre kategorize etmeden listeler. Bir 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 seçim yapabilirsiniz:

AdSeçeneklerVarsayılanAçıklama
BirimiMilisaniye (ms)
Yüzde (%)
msHer API çağrısı için harcanan zamanı milisaniyeler veya toplam kayıt oturumu yüzdeleri cinsinden gösterir.
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çeneği seçerseniz, Script Profiler ortalama hesaplamak için oturum süresini uzatır. Örneğin, 1 dakikalık oturum için 5 dakika seçeneğini seçtiğinizde, kodu 5 dakika çalıştırmayı bekleyen ortalama değeri görebilirsiniz.

Profil verilerini dışa aktarma

Script Profiler, kayıtlı profil verilerini JSON dosyası olarak dışa aktarmanıza olanak tanır. Profil oluşturma oturumu sonrası kayıtlı 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 oluşturma oturumunu seçin. Varsayılan dosya adını değiştirmezseniz özel bir ad ayarlayabilirsiniz.

  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:

  • Versiyon: Versiyon numarası.
  • SessionStartTime: Oturum başlangıç zamanını kaydeden milisaniye cinsinden bir zaman damgası.
  • SessionEndTime: 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ı.
    • NodeId: Bir görev kategorisinin (düğüm) benzersiz tanımlayıcısıdır. Nodes dizisi içinde 1 tabanlı bir indekstir. Örneğin, NodeId'si 123 olan düğümü, Nodes dizisindeki 123. öğeyi alarak bulabilirsiniz.
  • Düğümler: Profil oluşturma oturumunda kaydedilen düğümlerin bir dizisi. Her giriş şunları içerir:
    • ToplamSüre: Düğümün CPU zamanında harcadığı süre milisaniye cinsindendir.
    • FunctionIds: Benzersiz fonksiyon tanımlayıcılarının bir dizisi.
    • NodeIds: Düğüm kimliklerinin bir dizisi.
  • Fonksiyonlar: Profil oluşturma oturumunda kaydedilen fonksiyonların bir dizisi.
    • ToplamSüre: Fonksiyonun CPU zamanında harcadığı süre milisaniye cinsindendir.
    • Ad: Fonksiyonun adı, mevcutsa.
    • Kaynak: Fonksiyonun kaynağı, mevcutsa.
    • Satır: Fonksiyonun satır numarası, mevcutsa.
    • Bayraklar: Belirli bir fonksiyon yürütme ortamını gösteren bir bit alanıdır. Mevcut durumda şu değerleri alabilir:
      • 0: 0. bit, Native CodeGen altında IsNative için temsil eder.
      • 1: 1. bit, bir eklentin parçası olarak IsPlugin için temsil eder.
Örnek Dışa Aktarılan Profil Verileri

{
"Version":2,
"SessionStartTime":1704850750514,
"SessionEndTime":1704850751198,
"Categories":
[
{"Name":"Paralel 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}
]
}
©2026 Roblox Corporation. Roblox, the Roblox logo and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.