Percorso di MicroProfiler

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

Questo tour mostra come utilizzare il MicroProfiler per trovare un aspetto problematico di un'esperienza e identificare la causa radice.Download the experience, Apri dal File in Studio, e segui.


Identifica il problema

  1. Dopo aver aperto l'esperienza in Studio, inizia a testarla con F5 o il pulsante Gioca .

  2. La frequenza fotogrammi si sente decente, ma non così liscia come dovrebbe essere per un'esperienza di questa dimensione e portata.Passa alla scheda Visualizza e clicca Sommario sotto Statistiche.

    Debug stats summary showing 45 FPS.

    Nota che il tasso di fotogrammi è inferiore a 60 fotogrammi al secondo (FPS).

  3. Apri il MicroProfiler premendo CtrlAltF6 ( F6 ).

    The MicroProfiler after opening it.

    Nota che i tempi del frame sono coerenti —le barre sono approssimativamente della stessa altezza— quindi tutto ciò che causa il basso tasso di frame è in esecuzione ogni singolo frame a differenza di eseguire occasionalmente e causare picchi di tempo del frame.

  4. Interrompi il MicroProfiler premendo CtrlP ( P ).La pausa con il scorciatoia della tastiera apre modo dettagliato.

  5. Fai clic e trascina per spostare il grafico.Nota come un particolare compito nei thread lavoratore sembri utilizzare un sacco di tempo di elaborazione rispetto al Filoprincipale.Passa il mouse su RunService.Stepped e nota quanto tempo ci vuole per Renderizzare.

    Detailed mode with long labels for processes.
  6. Le barre impilate nella timeline indicano una gerarchia di codice, quindi continua a passare il mouse sugli strati inferiori e inferiori per cercare di identificare il problema.

    On-hover details for various processes, with LocalScript highlighted. On-hover details for various processes, with Raycast highlighted.

    Nota l'EtichettaLocalScript, che indica il nome dello script, e l'EtichettaRaycast, che indica che il problema potrebbe essere legato al raycasting.

Crea etichette di risoluzione dei problemi

Ora che il MicroProfiler ha fornito un punto di partenza, puoi risolvere il codice problematico.

  1. Interrompi il test di riproduzione e filtra la finestra Explorer per localscript per trovare il file.

    A view of filtering in the Explorer window.

    Una ricerca per raycast indica che questa porzione di codice è probabilmente il colpevole della cattiva Prestazionedell'esperienza:


    local RAYS_PER_SECOND = 1500
    local function onStepped()
    for _ = 1, RAYS_PER_SECOND do
    local startPosition = getRandomPosition()
    local endPosition = getRandomPosition()
    local direction = endPosition - startPosition
    Workspace:Raycast(
    startPosition,
    endPosition
    )
    end
    end
    RunService.Stepped:Connect(onStepped)

    In particolare, puoi vedere che il codice sta lanciando 1.500 raggi al secondo in direzioni casuali.

  2. Per verificare che questa parte del codice sta causando il ritardo di rendering, avvolgi i contenuti della funzione con debug.profilebegin() e debug.profileend() :


    local function onStepped()
    debug.profilebegin("Raycast Spam")
    for _ = 1, RAYS_PER_SECOND do
    local startPosition = getRandomPosition()
    local endPosition = getRandomPosition()
    local direction = endPosition - startPosition
    Workspace:Raycast(
    startPosition,
    endPosition
    )
    end
    debug.profileend()
    end

Conferma e risolvi il problema

  1. Inizia a testare l'esperienza e riapri il MicroProfiler.

  2. Nota come il MicroProfiler ora mostra l'Etichetta, indicando che questa funzione era effettivamente la causa radice.

    MicroProfiler detailed view with 'Raycast Spam' visible.
  3. Interrompi il test di gioco.

  4. Elimina o commenta la funzione onStepped() e la connessione RunService.Stepped:Connect(onStepped).

  5. Ricomincia a testare l'esperienza e controlla di nuovo il riepilogo delle statistiche di debug.

    Debug stats summary showing 60 FPS.

    Nota l'enorme miglioramento della velocità del fotogramma e del conseguente calo dei tempi del fotogramma sul grafico del MicroProfiler.