MicroProfiler

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

Il MicroProfiler è uno strumento di ottimizzazione delle prestazioni e risoluzione dei problemi in Roblox Studio e nel client Roblox. Fornisce informazioni di temporizzazione visive dettagliate per tutti i compiti del motore che vengono eseguiti durante un frame, come l'animazione dei personaggi, l'aggiornamento della fisica, l'esecuzione di script e il rendering della geometria. Puoi identificare quali compiti sono stati eseguiti durante un determinato frame, quanto tempo hanno impiegato e se qualcuno di essi ha causato il mancato rispetto degli obiettivi di tempo per frame.

Tempi dei frame

Per utilizzare il MicroProfiler, devi comprendere la relazione tra tempo del frame e frequenza dei frame.

  • Il tempo del frame è il tempo impiegato per rendere un frame sullo schermo, generalmente misurato in millisecondi.
  • La frequenza dei frame è il numero di frame resi sullo schermo, generalmente misurato in frame al secondo (FPS).

Tempi di frame più bassi significano una frequenza di frame più alta. Dividi 1.000 millisecondi (1 secondo) per il tempo del frame per ottenere la frequenza di frame.

Tempo medio del frameFrame al secondo
33.33 ms30 FPS
16.67 ms60 FPS
8.33 ms120 FPS
4.17 ms240 FPS

Tuttavia, per un gameplay fluido, non basta avere una frequenza di frame alta. Hai bisogno di tempi di frame coerenti. Ad esempio, se 59 frame arrivano in 10 millisecondi e un frame in 410 millisecondi, i giocatori percepiscono un enorme e sconcertante scatto, anche se il gioco sta girando a 60 FPS. Se tutti i frame impiegano all'incirca lo stesso tempo per essere resi, il tuo gioco risulterà percepibilmente più fluido grazie a questa coerenza, specialmente a frequenze di frame più basse.

Il MicroProfiler si concentra esclusivamente sul tempo del frame. Il suo scopo è aiutarti a identificare i picchi nel tempo del frame e cosa li ha causati.

Apri il MicroProfiler

Aprire il MicroProfiler varia a seconda della piattaforma:

  • Sul client mobile, apri il menu Impostazioni e cambia il MicroProfiler su On. Poi, da un macchina di sviluppo sulla stessa rete, utilizza il tuo browser web per navigare all'indirizzo IP e alla porta forniti.

    L'interfaccia utente di MicroProfiler su mobile.

    Questa cattura dello schermo mostra un indirizzo IP di 172.18.56.105 e una porta di 1338, quindi naviga verso 172.18.56.105:1338. A seconda della configurazione della rete del tuo dispositivo, potresti vedere più indirizzi IP. Se uno non funziona, prova con l'altro.

  • Sul client desktop, premi CtrlF6 (F6).

  • In Studio, premi CtrlF6 (F6).

In generale, il client mobile è il posto migliore per profilare il tuo gioco. La maggior parte dei giocatori su Roblox utilizza telefoni e tablet, e questi dispositivi hanno severe limitazioni termiche e di energia che limitano le loro prestazioni. Se il tuo gioco funziona bene su un tablet Android di fascia media, è quasi certo che funzioni molto, molto meglio su un desktop da gaming.

Nozioni di base sul MicroProfiler

Il MicroProfiler ha due componenti chiave: il grafico a barre dei tempi di frame e la timeline dettagliata dei compiti.

  • Il grafico del tempo del frame si estende lungo la parte superiore dell'interfaccia e mostra quanto tempo ha impiegato ciascun frame per essere reso. Barre più alte significano tempi di frame più lunghi.
  • La timeline mostra tutti i compiti individuali che sono stati eseguiti durante il frame. Barre più larghe rappresentano compiti che hanno impiegato più tempo per essere eseguiti.

Un flusso di lavoro tipico nel MicroProfiler è utilizzare il grafico dei tempi di frame per identificare un picco (una barra più alta) e poi utilizzare la timeline per identificare quali compiti hanno causato il picco. Poi puoi controllare il Riferimento dei tag per informazioni sul compito e su come migliorare le sue prestazioni.

Esempio di un picco nel tempo del frame.

Grafico dei tempi di frame

L'altezza di ciascuna barra indica il numero di millisecondi che sono stati necessari per completare il frame. I frame più recenti si trovano a destra. Passa il mouse su un frame per alcune informazioni di base sull'uso della CPU e della GPU.

Il grafico del frame del Microprofiler, che mostra frame blu e informazioni dettagliate sui frame.
  • Le barre arancioni sono frame in cui il Jobs Wall Time supera il Render Wall Time. In questi frame, almeno uno dei thread di lavoro, che eseguono operazioni come l'esecuzione di script, il calcolo della fisica e l'esecuzione di animazioni, ha impiegato più tempo rispetto al thread principale di rendering.

    Se il gioco non sta raggiungendo i tuoi obiettivi di tempo per frame e ha un numero elevato di frame arancioni, le cause comuni sono script, fisica e animazioni. Vedi Migliora le prestazioni.

  • Le barre blu sono frame in cui il Render Wall Time supera il Jobs Wall Time. In questi frame, il thread principale di rendering ha impiegato più tempo di qualsiasi thread di lavoro.

    Se il gioco non sta raggiungendo i tuoi obiettivi di tempo per frame e ha un numero elevato di frame blu, ciò indica un collo di bottiglia nel rendering. Le cause comuni sono densità eccessiva di oggetti, movimento degli oggetti e illuminazione. Vedi Migliora le prestazioni.

  • Le barre rosse sono frame in cui sono vere due condizioni:

    • Render Wall Time supera Jobs Wall Time
    • GPU Wait Time è maggiore di 2,5 millisecondi

    Le barre rosse sono meno comuni delle arancioni e blu e spesso sono il risultato di una complessità eccessiva degli oggetti, dimensioni delle texture e effetti visivi. L'ottimizzazione è simile a quella delle barre blu. Vedi Migliora le prestazioni.

Compiti piccoli alla fine di un frame possono a volte influenzare il Jobs Wall Time e il Render Wall Time, il che è un buon motivo per concentrarsi più sul tempo del frame che sul colore del frame. Non c'è un "colore buono" a cui aspirare. Una miscela di arancioni, blu e rossi non è problematica finché stai raggiungendo i tuoi obiettivi di tempo del frame. Se non stai raggiungendo i tuoi obiettivi di tempo del frame, i colori possono indicare dove ottimizzare.

Timeline

  • Clicca con il pulsante sinistro e trascina per spostarti lungo la timeline. Su una macchina con molti core CPU, potresti dover scorrere su o giù per trovare il thread che esegue un compito particolare.

    Il lato sinistro della vista dettagliata del Microprofiler, con righe per i thread.
  • Scorrere zooma la timeline in avanti e indietro. Combinato con le etichette in millisecondi nella parte superiore della timeline, puoi avere un'idea di quanto tempo ha impiegato un compito in un senso assoluto, ma anche quanto tempo ha impiegato rispetto ad altri compiti.

    La vista dettagliata del Microprofiler con numerose etichette orizzontali.
  • Il sovrapposto verde sul grafico a barre indica il numero di frame attualmente visibili sulla timeline—il tuo livello di zoom. Clicca con il pulsante sinistro su una barra del frame per saltare a quella posizione nella timeline.

    Potresti dover regolare il tuo livello di zoom, ma passare il mouse su una barra evidenzia il frame nella timeline. Linee grigie chiare delimitano i frame.

    Il grafico a barre del MicroProfiler con sovrapposto verde per mostrare il livello di zoom.
  • Le etichette che appaiono direttamente sotto un'altra etichetta indicano compiti che vengono eseguiti come parte del compito di livello superiore.

    Piuttosto che il compito genitore, vuoi tipicamente risolvere i compiti figlio con le prestazioni peggiori; un compito genitore non può essere più breve della somma dei suoi compiti figlio.

  • Clicca con il tasto destro su un'etichetta per ingrandire la timeline esattamente alla durata di quel compito.

  • Se la quantità di informazioni è opprimente, usa il menu Gruppi o Thread per filtrare la timeline. Ad esempio, potresti voler vedere solo i compiti Render nel thread principale.

    La vista al passaggio del mouse per un'etichetta, con il Gruppo evidenziato.
  • Usa CtrlF (F) per saltare all'occorrenza di un compito che occupa più tempo nel dump. Ad esempio, computeLightingPerform viene eseguito in ogni frame client. Se lo cerchi in un dump con 128 frame, puoi saltare al frame in cui ha impiegato più tempo per completarsi.

Thread

Come molti programmi, Roblox utilizza più thread per eseguire sequenze di compiti contemporaneamente. Il MicroProfiler visualizza il nome del thread sul lato sinistro della timeline.

Il lato sinistro della vista dettagliata del Microprofiler, con righe per i thread.

Ci sono tre tipi di thread importanti:

  • Principale ("RBX Main"): Gestisce compiti di rendering basati sulla CPU. Elabora input, Humanoids, animazioni/tweening, proprietà fisiche, suoni e attende la ripresa degli script. Aggiorna anche le interfacce di Studio e coordina gli altri thread.

  • Lavoratore ("RBX Worker"): Aiuta il thread principale con networking, fisica e pathfinding. A causa del numero di core nei processori moderni, probabilmente hai molti thread di lavoro, la maggior parte dei quali è in uno stato di inattività in qualsiasi momento.

  • Render ("GPU"): Segue una logica "prepara, esegui, presenta". Comunica con l'unità di elaborazione grafica (GPU) del dispositivo.

    • Prepara: Le informazioni dal thread principale sono utilizzate per aggiornare i modelli di rendering.
    • Esegui: Invia comandi di rendering, comprese le interfacce 2D.
    • Presenta: Sincronizza con la GPU.

Profili degli script personalizzati

Se i tuoi script eseguono compiti complessi, puoi profilare porzioni critiche del codice per assicurarti che non stiano impiegando troppo tempo. Avvolgi il codice con debug.profilebegin() e debug.profileend() per temporizzare tutto ciò che viene eseguito tra queste chiamate di funzione e creare un'etichetta sulla timeline del MicroProfiler.


local RunService = game:GetService("RunService")
local function onPreSimulation()
debug.profilebegin("Hard Work")
-- Esempio di lavoro duro: scambia due variabili 200.000 volte
local a, b = 0, 1
for _ = 1, 200000 do
a, b = b, a
end
debug.profileend()
end
RunService.PreSimulation:Connect(onPreSimulation)
Molte etichette nel MicroProfiler, con un'etichetta personalizzata che occupa la maggior parte del tempo di elaborazione.

Dalla sua durata sulla timeline, puoi vedere che la funzione sta utilizzando molto tempo di elaborazione rispetto ad altri compiti.

Salva i dati dei frame

Se desideri salvare un insieme di dati dei frame per una revisione successiva (o per condividerli con qualcun altro), usa il pulsante Salva su file. Il MicroProfiler salva i dati dei frame in un file HTML autonomo chiamato microprofile-<data>-<ora>.html.

Il pulsante salva su file nell'interfaccia web.

Sul client desktop o in Studio, usa il menu Dump. In entrambi i casi, il MicroProfiler salva automaticamente il file nella directory dei log di Roblox:

  • Su Windows, controlla %LOCALAPPDATA%\Roblox\logs.

    Se utilizzi l'app Universal Windows Platform (UWP), controlla \Users\<nome_utente>\AppData\Local\Packages\ROBLOXCORPORATION.ROBLOX_<hash>\LocalState\logs\.

  • Su macOS, controlla ~/Library/Logs/Roblox.

Profilazione del server

Oltre a profilare il client, puoi catturare brevi dump dell'attività del server:

  1. Sul client desktop, unisciti a un gioco per il quale hai diritti di modifica.

  2. Apri la Console Sviluppatori con CtrlF9 (F9).

  3. Dal menu a discesa, seleziona MicroProfiler.

  4. Nella scheda Server, specifica il numero di frame da catturare (massimo 60) e il numero di secondi di ritardo prima di iniziare la cattura (massimo 4).

  5. Clicca su Inizia registrazione server.

    Lo schermo MicroProfiler della Console Sviluppatori.

    Dopo pochi secondi, la Console Sviluppatori fornisce il percorso del file, che è lo stesso percorso di un dump standard.

Funzionalità solo web

Il MicroProfiler ha due interfacce utente: l'interfaccia web (mobile e dump) e l'interfaccia desktop (client e Studio). Ti consigliamo di utilizzare l'interfaccia web ogni volta che è possibile. In generale, le due funzionano in modo simile, ma l'interfaccia web ha alcune funzionalità extra:

  • Usa il menu X-Ray per abilitare o disabilitare la codifica a colori per l'allocazione della memoria.

    La vista web del MicroProfiler con x-ray abilitato.
    • Frame più chiari all'interno del grafico a barre principale indicano un'allocazione della memoria più alta.
    • Parti più chiare della barra di anteprima e etichette più chiare sulla timeline indicano porzioni del frame con un'allocazione della memoria più alta.
    • In modalità X-ray, premi C per mostrare la dimensione totale delle allocazioni di memoria anziché il numero di allocazioni.
  • Usa il menu Esporta per esportare un grafico a fiamma della CPU o della memoria, una visualizzazione specializzata che aggrega tutti gli stack di chiamata inclusi nel dump, mantiene l'gerarchia genitore-figlio e li dimensiona in base alla durata. I grafici a fiamma sono particolarmente utili per identificare compiti che non ti causano di perdere i tuoi obiettivi di tempo per frame (e quindi sono difficili da notare), ma vengono eseguiti così spesso che il loro tempo di elaborazione diventa significativo.

    Il grafico a fiamma del MicroProfiler nell'interfaccia web.

    Puoi anche creare grafici a fiamma in Studio, sebbene solo per script (tempo di esecuzione e allocazioni di memoria). Rispetto ai grafici a fiamma basati sul web, quelli in Studio sono dall'alto verso il basso piuttosto che dal basso verso l'alto e supportano tempi di cattura notevolmente più lunghi.

    Il grafico a fiamma del MicroProfiler in Studio.
  • Trascina e rilascia un secondo file di dump nell'interfaccia web per generare un grafico a fiamma differenziale, che può aiutarti a identificare miglioramenti o regressioni nelle prestazioni del tuo gioco nel tempo. Clicca su Combina & Confronta per esportare un nuovo file HTML.

    Il generatore di grafico a fiamma differenziale del MicroProfiler che mostra i lati sinistro e destro.

    Il grafico a fiamma differenziale evidenzia il dump (sinistro o destro) che consuma più CPU o memoria, con colori più brillanti che indicano una differenza maggiore.

    Il grafico a fiamma differenziale del MicroProfiler.

Funzionalità solo desktop

Sulla timeline desktop, clicca con il pulsante sinistro su un'etichetta per aggiungerla a un grafico a linee in basso a destra. Il grafico mostra il tempo che il compito impiega in ogni frame. Usando questo grafico, puoi testare le prestazioni solo di determinati compiti nel tuo gioco. Quando hai finito, clicca con il tasto destro sul grafico per nasconderlo.

Il grafico che mostra quanto tempo impiegano i compiti per frame.

Questo grafico è sincronizzato con le barre del profiler principale. L'intervallo di frame attualmente selezionato è evidenziato in verde nel grafico. Puoi anche cliccare ovunque su questo grafico per ricentrare la vista principale del profiler su quel frame specifico, il che è utile per trovare picchi nella vista dettagliata.

© 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.