MicroProfiler Guida

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

Questo walkthrough mostra come utilizzare il MicroProfiler per trovare un aspetto problematico di un'esperienza e identificare la causa根. Scarica l'esperienza, Apri dal File in Studio, e segui.


Identificazione del problema

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

  2. Il tasso di frame si sente decente, ma non è così liso come dovrebbe essere per un'esperienza di questa dimensione e di questo tipo. Navigate to the Visualizza tab and click Sommario under Statistiche .

    Debug stats summary showing 45 FPS.

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

  3. Apri il MicroProfiler premendo CtrlAltF6 ( 1> ⌥1> 3> F6 3> ).

    The MicroProfiler after opening it.

    Nota che i tempi di frame sono coistenti — le bar sono circa dello stesso alto — quindi qualsiasi cosa sta causando il basso tasso di frame rate è in esecuzione ogni singolo frame invece di essere eseguito occasionalmente e causare picchi di tempo di frame.

  4. Pausa il MicroProfiler premendo CtrlP ( P ). Pausing con la scorciatoia della tastiera apre 2> modalità dettagliata2> .

  5. Fai clic e trascina per impastare il grafico. Nota come una certa attività nei thread del lavoratore sembri essere in uso molto 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 piegate nella cronologia mostrano una gerarchia di codice, quindi tieni il mouse su strati inferiori e inferiori per tentare di identificare il problema.

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

    Nota il LocalScript Etichetta, che indica il nome dello script e il Raycast Etichetta, che indica che il problema potrebbe essere correlato al raycasting.

Creazione di etichetta Troubleshoot

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 parte del codice è probabilmente la causa della 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 facendo 1.500 rai al secondo in direzioni casuali.

  2. Per verificare che questa parte del codice stia 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 Riparazione del 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 in realtà la causa根.

    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. Riavvia il test dell'esperienza e controlla la riassunzione delle statistiche di debug.

    Debug stats summary showing 60 FPS.

    Nota il grande miglioramento della frequenza di frame e delle corrispondenti tempi di frame sul grafico MicroProfiler.