MicroProfiler Walkthrough

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Ce tutoriel montre comment utiliser le MicroProfiler pour trouver un aspect problématique d'une expérience et identifier la cause racine. Téléchargez l'expérience, Ouvrez à partir de Fichier dans Studio, et suivez-nous.


Identification du problème

  1. Après avoir ouvert l'expérience dans Studio, commencez à la tester avec F5 ou le bouton Jouer .

  2. Le taux de cadence se sent décent, mais pas aussi lisse que ce devrait être pour une expérience de cette taille et de cette portée. Navigate to the affichage tab and click résumé under statistiques .

    Debug stats summary showing 45 FPS.

    Notez que le taux de cadence est inférieur à 60 images par seconde (FPS).

  3. Ouvrez le MicroProfiler en appuyant sur CtrlAltF6 ( 1> ⌥1> 3> F6 3> ).

    The MicroProfiler after opening it.

    Notez que les temps de cadre sont cohérents — les barres sont d'une hauteur relativement constante — donc tout ce qui cause un faible taux de cadre est exécuté à chaque fois que vous exécutez un cadre individuel plutôt que d'exécuter occasionnellement et d'entraîner des pointes de temps de cadre.

  4. Suspendez le MicroProfiler en appuyant sur CtrlP ( P ). Suspendre avec le raccourci clavier ouvre 2> le mode détaillé2>.

  5. Cliquez et faites glisser pour panser le graph. Notez comment une tâche spécifique dans les threads d'exécution semble utiliser beaucoup de temps d'exécution par rapport au fil d'exécution principal. Survolez RunService.Stepped et notez combien de temps il prend pour rendu.

    Detailed mode with long labels for processes.
  6. Les barres encadrées dans la chronologie indiquent une hiérarchie de code, donc gardez la souris sur les niveaux inférieurs et inférieurs pour essayer d'identifier le problème.

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

    Remarquez l'étiquette LocalScript, qui indique le nom du script, et l'étiquette Raycast, qui indique que le problème pourrait être lié au raycasting.

Créer des étiquettes de débogage

Maintenant que le MicroProfiler a fourni un point de départ, vous pouvez déboguer le code problématique.

  1. Arrêtez le test de lecture et filtrez la fenêtre Explorer pour trouver le fichier.

    A view of filtering in the Explorer window.

    Une recherche pour raycast indique que cette partie du code est probablement la cause de la mauvaise performance de l'expérience :


    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)

    Plus précisément, vous pouvez voir que le code projette 1 500 rayons par seconde dans des directions aléatoires.

  2. Pour vérifier que cette partie du code est responsable de la délai de rendu,Wrap the contents of the function with debug.profilebegin() and 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

Confirmer et résoudre le problème

  1. Commencez à tester l'expérience, et ouvrez le MicroProfiler à nouveau.

  2. Notez comment le MicroProfiler affiche maintenant l'étiquette personnalisée, ce qui indique que cette fonction était en fait la cause racine.

    MicroProfiler detailed view with 'Raycast Spam' visible.
  3. Arrêtez le test de jeu.

  4. Supprimez ou commentez la fonction onStepped() et la connexion RunService.Stepped:Connect(onStepped).

  5. Recommencez le test de l'expérience et vérifiez le résumé des statistiques de débogage.

    Debug stats summary showing 60 FPS.

    Notez la grande amélioration de la cadence de capture et des temps de cadence correspondants sur le graphique MicroProfiler.