MicroProfilatore

*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 di risoluzione dei problemi disponibile in Roblox Studio e nel client Roblox.Fornisce informazioni dettagliate sul tempo per le attività programmatore di attività chiamate etichette .

  • Per una lista di compiti comuni, fai riferimento alla tag reference.
  • Per un esempio passo dopo passo di utilizzo del MicroProfiler per identificare un problema di prestazioni, vedi il MicroProfiler walkthrough.

Base di MicroProfiler

Per aprire il MicroProfiler, premere CtrlAltF6 ( F6 ) in Studio o nel client.Puoi anche utilizzare il menu delle impostazioni nel client.

Quando è aperto, una barra dei menu è visibile nella parte superiore della finestra3D.Nella modalità predefinita, un grafico a bar mobile mostra il tempo utilizzato su ciascun frame del programmatore di compiti.

The Microprofiler frame graph, showing blue frames and detailed frame information.

Le barre dovrebbero essere generalmente intorno al centro del grafico, ma potresti vedere improvvisi picchi (aumenti rapidi dei valori).Le punte indicano che è stato necessario più tempo per eseguire un compito, di solito a causa di un aumento del carico di lavoro.Ad esempio, la creazione di molte parti in movimento richiede più lavoro dalla simulazione fisica, che poi ha bisogno di più tempo per elaborare la mobilità e i contatti delle parti.L'immagine seguente mostra un esempio di spike:

The Microprofiler with several bars higher than others.

Per interrompere la registrazione di frame, premi CtrlP ( P ) o clicca Pausa nella barra dei menu.Mentre è in pausa, appare una timeline e puoi navigare attraverso i frame facendo clic o trascinando sul grafico.

Per una panoramica completa delle varie viste e di come navigare nell'interfaccia MicroProfiler, vedi Modalità MicroProfiler.

Thread

Come molti programmi, Roblox utilizza più thread per eseguire più sequenze di compiti contemporaneamente.Nel MicroProfiler modo dettagliato, puoi vedere le etichette per ciascun thread sulla sinistra.

The lefthand side of the Microprofiler detailed view, with rows for threads.

Ci sono tre tipi principali di thread:

  • Principale/Render : Forse in modo non intuitivo, funziona sulla CPU.Elabora l'input, Humanoids , animazioni/tweening, proprietà della fisica, suono e riprendono gli script di attesa.Aggiorna anche le interfacce di Studio e coordina gli altri thread.

  • Lavoratore ("Lavoratore RBX": Aiuta il thread principale con networking, fisica e trova percorsi.A causa del numero di core nelle CPU moderne, è probabile che tu abbia molti thread lavoratori, la maggior parte dei quali è in uno stato di sonno in qualsiasi momento.

  • Renderizza ("GPU"): Segue una logica "preparare, eseguire, presentare". Comunica con l'unità di elaborazione grafica (GPU) del Dispositivo.

    • Preparare: le informazioni dal thread principale vengono utilizzate per aggiornare i modelli di rendering.
    • Eseguire: emettere comandi di rendering, incluse le interfacce 2D.
    • Presente: si sincronizza con la GPU.

Profili personalizzati

Se i tuoi script stanno eseguendo compiti complicati, puoi profilare le porzioni critiche del codice per assicurarti che non stanno prendendo troppo tempo.Avvolgi il codice in debug.profilebegin() e debug.profileend() per impostare il tempo di tutto ciò che è stato fatto tra quelle chiamate di funzione e creare un'etichetta sulla timeline del MicroProfiler.

Script di lavoro duro

debug.profilebegin("Hard Work")
-- Codice da profilare
debug.profileend()
A custom label on the detailed view of the MicroProfiler.

Esiste una quantità limitata di memoria disponibile per le etichette MicroProfiler.Se questa memoria esaurisce, le etichette profiler personalizzate potrebbero non apparire come un nome significativo nella timeline.Usa meno etichette per evitare questo problema.Se non è più necessario profilare una sezione del tuo codice, commenta o rimuovi le chiamate a queste funzioni.

Esempio

Il campione di codice seguente connette una funzione dummy all'evento RunService.PreSimulation , che viene eseguito ogni frame.Tutto ciò che viene fatto spesso dovrebbe essere eseguito il più efficientemente possibile, quindi questa funzione è un buon candidato per il profiling.


local RunService = game:GetService("RunService")
local function onPreSimulation()
debug.profilebegin("Hard Work")
-- Esempio duro lavoro: 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)

Quando esegui l'esperienza e interrompi il MicroProfiler ( CtrlP o P ), l'etichetta personalizzata è visibile sotto l'Etichetta gameStepped .

Many labels on the MicroProfiler, with a custom label taking up the majority of the processing time.

Dalla sua durata sulla timeline, puoi dire che la funzione sta utilizzando molto tempo di elaborazione rispetto ad altre operazioni.

Salva dati del frame

Se vuoi salvare un insieme di dati di frame per una revisione successiva (o per condividere con qualcun altro), usa il menu Dump .Il motore salva i dati del frame in un file chiamato microprofile-<date>-<time>.html nella directory dei log di Roblox.

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

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

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

Questi file HTML utilizzano lo stesso interfaccia utente web-based come la connessione in diretta per dispositivi mobili e dump del server.

Dispositivi mobili di profilo

Per accedere al MicroProfiler dal client mobile, il tuo dispositivo mobile deve essere connesso alla stessa rete come la tua macchina di sviluppo .

Abilita il MicroProfiler nel menu Impostazioni del Dispositivomobile. Dopo averlo abilitato, il menu mostra un indirizzo IP e un numero di porta.

A picture of the Settings menu on mobile, showing how to enable the MicroProfiler.

Ad esempio, nella schermata sopra, l'indirizzo è 192.168.1.166 e il porto è 1338 .Da un computer sulla stessa rete, naviga a http://192.168.1.166:1338 per una versione web-based dell'interfaccia utente MicroProfiler.

The MicroProfiler web view.

Profila il Server

Oltre al client standard MicroProfiler, puoi eseguire dump brevi dell'attività del server utilizzando il server MicroProfiler.

  1. In un'esperienza per cui hai permessi di modifica, apri la Console dello Sviluppatore con CtrlAltF9 .

  2. Nel menu a discesa, seleziona MicroProfiler .

  3. Nella sezione ServerProfiler , specifica il numero di frame al secondo (massimo 60) e il numero di secondi da profilare (massimo 4).

  4. Fai clic su Inizia a registrare .

    The Developer Console MicroProfiler screen.

    Dopo alcuni secondi, la Console per sviluppatori fornisce il percorso al file, che è lo stesso percorso di un dump standard .

Usa l'interfaccia web

In Generale, l'interfaccia web MicroProfiler funziona in modo simile a modalità dettagliata, ma ha alcune caratteristiche aggiuntive:

  • Oltre a filtrare per Gruppo, puoi filtrare per Filo.

  • Usa CtrlF / F per saltare all'occorrenza di un compito che occupa la maggior parte del tempo nel scaricare.Ad esempio, computeLightingPerform corre in ogni frame.Se cerchi in un dump con 128 frame, puoi saltare al frame in cui ci è voluto più tempo per completare.

  • Usa il menu Raggi X per abilitare o disabilitare la codifica dei colori per l'assegnazione della memoria.

    The MicroProfiler web view with x-ray enabled.
    • I quadri più leggeri all'interno del grafico della barra principale indicano una maggiore assegnazione di memoria.
    • Le porzioni più leggere della barra di anteprima e le etichette più leggere sulla timeline indicano porzioni del frame con una maggiore assegnazione di memoria.
    • Nella modalità a raggi X, premi C per mostrare la dimensione totale delle assegnazioni di memoria piuttosto che il numero di assegnazioni.
  • Usa il menu Esporta per esportare un grafico di fiamma di CPU o memoria, una visualizzazione specializzata cheaggrega tutti gli stack di chiamata inclusi nel scaricare, mantiene la gerarchia padre-figlio e li ridimensiona in base alla durata.I grafici delle fiamme sono particolarmente utili per identificare le attività che non richiedono particolarmente tempo per essere eseguite (e quindi sono difficili da notare), ma vengono eseguite così spesso che il loro tempo di elaborazione diventa rilevante.

    The MicroProfiler flame graph in the web UI.

    Puoi anche creare grafici delle fiamme in Studio, anche se solo per gli script (tempo di esecuzione e assegnazione di memoria).Rispetto ai grafici delle fiamme basati sul web, quelli in Studio sono dall'alto verso il basso piuttosto che dal basso verso l'alto e supportano tempi di cattura drammaticamente più lunghi.

    The MicroProfiler flame graph in Studio.
  • Trascina e rilascia un secondo file di dump nella web UI per generare un grafico di fiamma diff, che può aiutarti a identificare miglioramenti o regressioni alla performance della tua esperienza nel tempo.Fai clic su Combina e confronta per esportare un nuovo file HTML.

    The MicroProfiler diff flame graph builder showing the left and right sides.

    Il grafico delle fiamme di differenza evidenzia il dump (sinistra o destra) che consuma più CPU o memoria, con colori più luminosi che indicano una differenza maggiore.

    The MicroProfiler diff flame graph.