Profiler degli Script

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Profiler degli Script è uno strumento all'interno della Console dello Sviluppatore che consente di registrare le sessioni di profiling di tutti gli script in esecuzione e visualizzare i loro costi di tempo CPU con impostazioni di registrazione e visualizzazione personalizzate. Può registrare tutti i tipi di chiamate di funzione, comprese le funzioni Luau, le chiamate ai metodi e gli accessi alle proprietà. Questo strumento è utile per identificare gli script che consumano più risorse CPU e rallentano le prestazioni.

Registrare sessioni di profiling

Prima di registrare, è necessario selezionare l'ambiente di registrazione da:

Puoi anche impostare le seguenti opzioni di registrazione:

ComportamentoOpzioniPredefinitoDescrizione
Frequenza1000 volte al secondo (1 KHz)
10.000 volte al secondo (10 KHz)
1 KHzLa frequenza di 10 KHz ha una precisione maggiore, poiché il Profiler degli Script potrebbe non registrare le chiamate API che vengono eseguite più frequentemente della frequenza selezionata, ma ha anche un costo di prestazioni maggiore.
Durata della sessione1 minuto
5 minuti
10 minuti
Manuale
ManualeL'opzione manuale richiede di fermare manualmente la registrazione.
Comportamento di polling in tempo realeAttivo
Disattivo
DisattivoQuesto comportamento interroga e aggiorna i dati di profiling ogni secondo durante una sessione di profiling.

Per registrare una nuova sessione di profiling:

  1. Espandi il menu a discesa degli strumenti per selezionare ScriptProfiler.

    Menu a discesa di tutti gli strumenti della Console dello Sviluppatore con l'opzione ScriptProfiler evidenziata per la selezione.
  2. Espandi il menu a discesa client-server per selezionare Client o Server.

    Menu a discesa con le opzioni Client e Server per la selezione.
  3. OPZIONALE
    Seleziona la casella Live per abilitare il comportamento di polling in tempo reale.

  4. OPZIONALE
    Seleziona Freq e Tempo per scegliere la frequenza di registrazione e la durata della sessione se non desideri utilizzare i valori predefiniti.

  5. Fai clic su Inizia per avviare la sessione di profiling. Se hai impostato una durata, il Profiler degli Script visualizza un timer di conto alla rovescia con il tempo rimanente nella sessione.

  6. Fai clic su Ferma o aspetta che la registrazione finisca per visualizzare i dati di profiling.

Leggere i dati di profiling

Dopo che una sessione si ferma, il Profiler degli Script genera una tabella che mostra quanto tempo costa ogni chiamata di funzione in tempo CPU. La tabella ordina le chiamate di funzione dal maggior tempo speso al minor tempo speso e consente di cercare funzioni specifiche per nome. Fornisce le seguenti due visualizzazioni:

  • Callgraph (Predefinito): Categorizza e visualizza le chiamate di funzione in una struttura ad albero basata su attività di frame. Questa vista visualizza ogni categoria di attività come nodi sotto lo stesso nodo radice e consente di espanderli per visualizzare le funzioni. Puoi anche passare il mouse su qualsiasi nodo nell'albero per visualizzare informazioni su file e righe. Ad esempio, Stepped/CameraInput/<anonimo> potrebbe rivelare Players.[LocalPlayer].PlayerScripts.PlayerModule.CameraModule.CameraInput:125. Esempio di vista callgraph di una sessione di profiling.
  • Funzioni: Elenca tutte le funzioni senza categorizzarle per attività. Esempio di vista funzioni di una sessione di profiling.

Puoi anche selezionare tra le seguenti opzioni di visualizzazione per adattare le tue esigenze di debug:

NomeOpzioniPredefinitoDescrizione
UnitàMillisecondi (ms)
Percentuale (%)
msVisualizza il tempo speso su ogni chiamata API in millisecondi o percentuali della sessione di registrazione totale.
MediaDisattivo
1 secondo
1 minuto
5 minuti
10 minuti
DisattivoCalcola il tempo medio speso su ogni chiamata API in base al valore selezionato. Se selezioni un'opzione che è più lunga della durata della sessione, il Profiler degli Script estrae la durata della sessione per calcolare la media. Ad esempio, puoi selezionare l'opzione di 5 minuti per una sessione di 1 minuto per vedere il valore medio previsto se esegui il codice per 5 minuti.

Esportare i dati di profiling

Il Profiler degli Script consente di esportare i dati di profiling registrati come file JSON. Per esportare i dati registrati dopo una sessione di profiling:

  1. Nella finestra del Profiler degli Script, fai clic su Esporta.

  2. Nella finestra di esportazione, seleziona la sessione di profiling che desideri esportare. Rinomina il nome del file predefinito se desideri impostare un nome personalizzato.

  3. Fai clic su Esporta per salvare il file JSON.

    Esempio di finestra di esportazione.

Il file JSON esportato include i seguenti campi:

  • Versione: Il numero di versione.
  • SessionStartTime: Un timestamp in millisecondi che registra l'orario di inizio della sessione.
  • SessionEndTime: Un timestamp in millisecondi che registra l'orario di fine della sessione.
  • Categorie: Un array di categorie di attività di frame registrate nella sessione di profiling. Ogni voce include:
    • Nome: Il nome di ciascuna categoria di attività di frame.
    • NodeId: L'identificatore univoco di una categoria di attività (nodo). È un indice basato su 1 nell'array Nodes. Ad esempio, puoi cercare il nodo con il NodeId di 123 recuperando il 123° elemento in Nodes.
  • Nodi: Un array di nodi registrati nella sessione di profiling. Ogni voce include:
    • TotalDuration: La quantità di tempo che il nodo costa in tempo CPU in microsecondi.
    • FunctionIds: Un array di identificatori univoci delle funzioni.
    • NodeIds: Un array di ID dei nodi.
  • Funzioni: Un array di funzioni registrate nella sessione di profiling.
    • TotalDuration: La quantità di tempo che la funzione costa in tempo CPU in microsecondi.
    • Nome: Il nome della funzione, se disponibile.
    • Fonte: La fonte della funzione, se disponibile.
    • Linea: Il numero di riga della funzione, se disponibile.
    • Flags: Un campo bit che indica eventuali ambienti di esecuzione specifici della funzione. Attualmente può avere i seguenti valori:
      • 0: Il bit 0 rappresenta IsNative per l'esecuzione sotto Native CodeGen.
      • 1: Il bit 1 rappresenta IsPlugin per l'esecuzione come parte di un plugin.
Esempio di Dati di Profiling Esportati
{
"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}
]
}
© 2026 Roblox Corporation. Roblox, il logo Roblox e Powering Imagination sono tra i nostri marchi registrati e non registrati negli Stati Uniti. e altri paesi.