MicroProfiler-Walkthrough

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Diese Walkthrough zeigt, wie man den MicroProfiler verwendet, um einen problematischen Aspekt eines Erlebnisses zu finden und die Wurzelursache zu identifizieren. Laden Sie das Erlebnis herunter, Öffnen Sie von File in Studio, und folgen Sie weiter.


Das Problem identifizieren

  1. Nachdem du die Erfahrung in Studio geöffnet hast, starten Sie sie mit F5 oder der Play Schaltfläche.

  2. Die Bildrate fühlt sich anständig an, aber nicht so glatt wie es für ein Erlebnis dieser Größe und des Umfangs sein sollte. Navigate to the Ansicht tab and click Zusammenfassung under Statistiken.

    Debug stats summary showing 45 FPS.

    Beachten Sie, dass die Bildrate unter 60 Bildern pro Sekunde (Ego-Shooter) liegt.

  3. Öffnen Sie den MicroProfiler, indem Sie CtrlAltF6 ( 1> ⌥1> 3> F6 3> ) drücken.

    The MicroProfiler after opening it.

    Beachten Sie, dass die Rahmenzeiten konsistent sind - die Balken sind etwa die gleiche Höhe - so dass whatever die niedrige Rahmenrate verursacht, jedes einzelne Rahmen ausführt, anstatt gelegentlich und Rahmenzeit-Spitzen zu verursachen.

  4. Pause the MicroProfiler by pressing CtrlP ( P ). Pausing with the keyboard shortcut opens 2> detailed mode2> .

  5. Klicke und ziehe, um den Graph zu pannen. Beachte, wie eine bestimmte Aufgabe in den Worker-Threads viel Zeit zum Verarbeiten benutzt, im Vergleich zum Haupt Thread. Bewegen Sie den Mauszeiger über RunService.Stepped und beachten Sie, wie lange es dauert, um zu rendern.

    Detailed mode with long labels for processes.
  6. Die gestapelten Balken in der Zeitachse zeigen eine Hierarchie von Codesan, so halten Sie den Mauszeiger auf den unteren und unteren Schichten, um das Problem zu identifizieren.

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

    Beachten Sie das LocalScript Beschriftung, das den Namen des Skript, das. PL: die Skriptsanzeigt, und das Raycast Beschriftung, das anzeigt, dass das Problem möglicherweise mit Raycasting verwandt ist.

Durchsage- Labels erstellen

Nun, da der MicroProfiler einen Startplatz bereitgestellt hat, können Sie den problematischen Codesproblemlos überprüfen.

  1. Stoppen Sie den Spieltest und filtern Sie das Explorer-Fenster für localscript , um die Datei zu finden.

    A view of filtering in the Explorer window.

    Eine Suche nach raycast deutet darauf hin, dass dieses Stück Code wahrscheinlich der Grund für die schlechte Erfüllungdes Erlebnisses ist:


    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)

    Genauer kannst du sehen, dass der Code 1.500 Strahlen pro Sekunde in zufälliger Richtung wirft.

  2. Um zu überprüfen, ob dieser Teil des Codes die Rendering-Verzögerung verursacht, wickelt die Inhalte der Funktion mit debug.profilebegin() und 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

Bestätigung und Fehlerbehebung

  1. Starten Sie das Erlebnis und öffnen Sie den MicroProfiler erneut.

  2. Beachten Sie, wie der MicroProfiler jetzt das benutzerdefinierte Beschriftunganzeigt, was anzeigt, dass diese Funktion tatsächlich die Wurzelursache war.

    MicroProfiler detailed view with 'Raycast Spam' visible.
  3. Stoppen Sie den Spieltest.

  4. Löschen oder kommentieren Sie die onStepped() Funktion und die RunService.Stepped:Connect(onStepped) Verbindung.

  5. Starten Sie die Erfahrung erneut und überprüfen Sie die Debug-Statistik-Zusammenfassung erneut.

    Debug stats summary showing 60 FPS.

    Beachten Sie die große Verbesserung der Bildrate und der entsprechenden Verringerung der Bildzeit auf der MicroProfiler-Grafik.