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 disponibile in Roblox Studio e nel client Roblox che fornisce informazioni dettagliate sui tempi di esecuzione per le attività chiamate tags .

  • Per un elenco di attività comuni, fai riferimento alla Référence de tag .
  • Per un esempio passo-passo su come utilizzare il MicroProfiler per identificare un problema di prestazioni, vedi il MicroProfiler Walkthrough .

MicroProfiler Basics

Per aprire il MicroProfiler, premi CtrlAltF6 ( 1> ⌥1> 3> F6 3> ) nel Studio o nel client. Puoi anche usare il menu delle impostazioni nel client.

Quando è aperto, a menu bar è visibile nella parte superiore della finestra3D. Nel modo predefinito, un grafico di barra mobile mostra il tempo usato su ciascuna immagine della Task Scheduler.

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 del valore). I picchi indicano che è stato necessario più tempo per eseguire alcune attività, 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 richiede più tempo per elaborare il movimento e i contatti delle parti. L'immagine seguente mostra un esempio di uno

The Microprofiler with several bars higher than others.

Per sospendere la registrazione dei frame, fai clic su CtrlP ( P ) o fai clic su 2> Pause2> nella barra dei menu. Mentre sei in pausa, viene visualizzata una timeline e puoi navigare attraverso i frame facendo clic o trascinando sulla grafica.

Per un'anteprima completa delle varie visualizzazioni e per navigare nell'interfaccia MicroProfiler, vedi Modalità MicroProfiler.

Thread

Come molti programmi, Roblox utilizza più thread per eseguire più sequenze di attività contemporaneamente. Nel MicroProfiler Modalità dettagliata, 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 inintuitivo, viene eseguito sull'architettura del processore. Elabora l'input, Humanoids , animazioni/tweening, proprietà fisica, sonoro e script di attesa. Aggiorna anche le interfacce Studio e coordina gli altri thread.

  • Worker ("RBX Worker") aiuta il thread principale con networking, fisica e pathfinding. A causa del numero di core in moderni CPU, probabilmente hai molti thread del lavoratore.

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

    • Preparazione: Le informazioni dalla thread principale vengono utilizzate per aggiornare i modelli di rendering.
    • Esegui comandi di rendering, tra cui interfacce 2D.
    • Present: Sincronizza con ilGPU.

Profilazione personalizzata

Se i tuoi script eseguono compiti complessi, puoi profilare le parti critiche del codice per assicurarti che non stanno prendendo troppo tempo. Wrap code in debug.profilebegin() e debug.profileend() to time everything done between those function calls and create a label on the MicroProfiler timeline.

Script del lavoro duro

debug.profilebegin("Hard Work")
-- Ecco dove il codice da profilare dovrebbe essere
debug.profileend()
A custom label on the detailed view of the MicroProfiler.

C'è una quantità limitata di memoria disponibile per le etichetta MicroProfiler. Se questa memoria viene utilizzata, le etichette personalizzate profiler potrebbero non apparire come un nome significativo nel timeline. Usa meno etichette per evitare questo problema. Se non hai più bisogno di profilare una sezione del tuo codice, commenta o rimuovi chiamate a queste funzioni.

Esempio

Il codice di esempio seguente connette una funzione dummy alla evento RunService.PreSimulation , che viene eseguita ogni frame. Tutto ciò che viene fatto di solito dovrebbe essere eseguito il più efficientemente possibile, quindi questa funzione è un buon candidato per profilare.


local RunService = game:GetService("RunService")
local function onPreSimulation()
debug.profilebegin("Hard Work")
-- Esempio di duro lavoro: scambiare 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 fai clic e MicroProfiler ( CtrlP o 0> P0>), la etichetta personalizzata è visibile sotto la 2>gameStepped2> Etichetta.

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

Dalla sua durata sulla linea del tempo, puoi dire che la funzione sta usando un sacco di tempo di elaborazione rispetto ad altre operazioni.

Salvataggio dei dati di frame

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

  • On Windows, check %LOCALAPPDATA%\Roblox\logs .
  • Su macOS, controlla ~/Library/Logs/Roblox .

Questi file HTML utilizzano gli stessi UI basati sul web come la live connection for mobile devices e dumps del server.

Profilazione su dispositivi mobili

Per accedere al MicroProfiler dal cliente mobile, il tuo dispositivo mobile deve essere connesso alla rete stessa 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 sullo stesso network, naviga a http://192.168.1.166:1338 per una versione web-based della interfaccia utente MicroPro

The MicroProfiler web view.

Profilazione del server

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

  1. In un'esperienza che hai i permessi di modifica, apri la Developer Console con CtrlAltF9 .

  2. Nel menu a discesa, seleziona MicroProfiler .

  3. Nella sezione ServerProfiler , specifica il numero di frame per secondo (massimo 60) e il numero di secondi per il profilo (massimo 4).

  4. Fai clic su Inizia registrazione .

    The Developer Console MicroProfiler screen.

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

Usa l'interfaccia utente web

In Generale, l'interfaccia utente MicroProfiler funziona in modo simile a Modalità dettagliata, ma ha alcune funzionalità aggiuntive:

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

  • Usa CtrlF / F per saltare all'avvenimento di un'attività che richiede il maggior tempo nell'scaricare. Ad esempio, 2> computeLightingPerform2> viene eseguito in ogni frame. Se cerchi in unump con 128 frame, puoi saltare all'frame in cui ci vuole più tempo per

  • Usa il menu X-Ray per abilitare o disabilitare la codifica dei colori per la distribuzione della memoria.

    The MicroProfiler web view with x-ray enabled.
    • IFrame più leggeri all'interno della barra di riquadratura principale indicano un'allocazione di memoria più elevata.
    • Le parti più chiare della barra di anteprima e le etichettature più chiare sulla timeline indicano le parti dellaFrame con maggiore allocazione della memoria.
    • In modalità X-ray, premi C per mostrare la dimensione totale delleallocazioni della memoria piuttosto che il numero di alleazioni.
  • Usa il menu Esporta per esportare un grafico a fiamma CPU o memoria, una visualizzazione specializzata cheaggrega tutti i call stack inclusi nel scaricare. Il grafico a fiamma è particolarmente utile per identificare le attività che non richiedono particolarmente lungo per essere eseguite (e quindi sono difficili da notare), ma eseguono con una frequenza sufficiente che diventa significativa.

    The MicroProfiler flame graph.
  • Trascina e fai un doppio file di scarico nella UI web per generare un grafico di fiamma diff, che può aiutarti ad identificare le miglioramenti o i regressi alle prestazioni della tua esperienza nel tempo. Fai clic su Combina e paragona per esportare un nuovo file HTML.

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

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

    The MicroProfiler diff flame graph.