MicroProfiler

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

Le MicroProfiler est un outil d'optimisation de performance et de dépannage dans Roblox Studio et le client Roblox. Il fournit des informations détaillées et visuelles sur le temps d'exécution de toutes les tâches du moteur qui s'exécutent pendant un cadre, comme l'animation des personnages, la mise à jour de la physique, l'exécution de scripts et le rendu de la géométrie. Vous pouvez identifier quelles tâches se sont exécutées pendant quel cadre, combien de temps ces tâches ont pris à s'exécuter, et si certaines d'entre elles vous ont fait manquer vos objectifs de temps de cadre.

Temps de cadre

Pour utiliser le MicroProfiler, vous devez comprendre la relation entre le temps de cadre et le taux de trame.

  • Le temps de cadre est le temps qu'un cadre a mis à s'afficher à l'écran, généralement mesuré en millisecondes.
  • Le taux de trame est le nombre de cadres affichés à l'écran, généralement mesuré en cadres par seconde (FPS).

Des temps de cadre plus bas signifient un taux de trame plus élevé. Divisez 1 000 millisecondes (1 seconde) par le temps de cadre pour obtenir le taux de trame.

Temps de cadre moyenCadres par seconde
33,33 ms30 FPS
16,67 ms60 FPS
8,33 ms120 FPS
4,17 ms240 FPS

Cependant, pour un gameplay fluide, il ne suffit pas d'avoir un taux de trame élevé. Vous avez besoin de temps de cadre cohérents. Par exemple, si 59 cadres arrivent en 10 millisecondes et un cadre en 410 millisecondes, les joueurs perçoivent un énorme, choquant retard, même si le jeu fonctionne à 60 FPS. Si tous les cadres prennent à peu près le même temps à rendre, votre jeu semblera perçu comme plus fluide grâce à cette cohérence, surtout à des taux de trame plus bas.

Le MicroProfiler se concentre entièrement sur le temps de cadre. Son but est de vous aider à identifier les pics de temps de cadre et ce qui les a causés.

Ouvrir le MicroProfiler

Ouvrir le MicroProfiler varie selon la plateforme :

  • Sur le client mobile, ouvrez le menu Paramètres et changez le MicroProfiler sur Activé. Ensuite, depuis une machine de développement sur le même réseau, utilisez votre navigateur web pour naviguer à l'adresse IP et au port fournis.

    L'interface utilisateur du MicroProfiler sur mobile.

    Cette capture d'écran montre une adresse IP de 172.18.56.105 et un port de 1338, vous naviguez donc vers 172.18.56.105:1338. Selon la configuration réseau de votre appareil, vous pourriez voir plusieurs adresses IP. Si l'une ne fonctionne pas, essayez la suivante.

  • Sur le client de bureau, appuyez sur CtrlF6 (F6).

  • Dans Studio, appuyez sur CtrlF6 (F6).

En général, le client mobile est le meilleur endroit pour profiler votre jeu. La plupart des joueurs sur Roblox utilisent des téléphones et des tablettes, et ces dispositifs ont des contraintes thermiques et énergétiques strictes qui limitent leur performance. Si votre jeu fonctionne bien sur une tablette Android de milieu de gamme, il fonctionne presque certainement beaucoup mieux sur un ordinateur de jeu.

Concepts de base du MicroProfiler

Le MicroProfiler a deux composants clés : le graphique à barres de temps de cadre et la chronologie des tâches détaillées.

  • Le graphique du temps de cadre s'étend sur le haut de l'interface et montre combien de temps chaque cadre a mis à se rendre. Des barres plus hautes signifient des temps de cadre plus longs.
  • La chronologie montre toutes les tâches individuelles qui se sont exécutées pendant le cadre. Des barres plus larges représentent des tâches qui ont pris plus de temps à s'exécuter.

Un flux de travail typique dans le MicroProfiler consiste à utiliser le graphique des temps de cadre pour identifier un pic (une barre plus haute) puis à utiliser la chronologie pour identifier quelles tâches ont causé le pic. Ensuite, vous pouvez consulter la Référence des tags pour des informations sur la tâche et comment améliorer sa performance.

Exemple d'un pic de temps de cadre.

Graphique du temps de cadre

La hauteur de chaque barre indique le nombre de millisecondes qu'il a fallu pour compléter le cadre. Les cadres les plus récents sont à droite. Survolez un cadre pour obtenir des informations de base sur l'utilisation du CPU et du GPU.

Le graphique de temps du Microprofiler, montrant des cadres bleus et des informations détaillées sur le cadre.
  • Les barres orange sont des cadres où le Temps de Murs des Jobs dépasse le Temps de Murs de Rendement. Dans ces cadres, au moins un des threads de travail, qui effectuent des tâches comme exécuter des scripts, calculer la physique et jouer des animations, a pris plus de temps à s'exécuter que le thread principal de rendu.

    Si le jeu n'atteint pas vos objectifs de temps de cadre et a un grand nombre de cadres orange, les causes communes sont des scripts, la physique et les animations. Voir Améliorer la performance.

  • Les barres bleues sont des cadres où le Temps de Murs de Rendement dépasse le Temps de Murs des Jobs. Dans ces cadres, le thread principal de rendu a pris plus de temps que n'importe quel des threads de travail.

    Si le jeu n'atteint pas vos objectifs de temps de cadre et a un grand nombre de cadres bleus, cela indique un goulet d'étranglement dans le rendu. Les causes communes sont une densité d'objets excessive, le mouvement d'objets et l'éclairage. Voir Améliorer la performance.

  • Les barres rouges sont des cadres où deux conditions sont vraies :

    • Temps de Murs de Rendement dépasse Temps de Murs des Jobs
    • Temps d'Attente GPU est supérieur à 2,5 millisecondes

    Les barres rouges sont moins communes que les oranges et les bleues et résultent souvent d'une complexité excessive des objets, taille des textures et effets visuels. L'optimisation est similaire à celle des barres bleues. Voir Améliorer la performance.

De petites tâches à la fin d'un cadre peuvent parfois fausser le Temps de Murs des Jobs et le Temps de Murs de Rendement, ce qui est une bonne raison de se concentrer davantage sur le temps de cadre que sur la couleur du cadre. Il n'y a pas de "bonne" couleur à viser. Un mélange d'orange, de bleu et de rouge n'est pas problématique tant que vous atteignez vos objectifs de temps de cadre. Si vous n'atteignez pas vos objectifs de temps de cadre, les couleurs peuvent indiquer où optimiser.

Chronologie

  • Cliquez avec le bouton gauche et faites glisser pour faire défiler la chronologie. Sur une machine avec de nombreux cœurs CPU, vous pourriez devoir faire défiler beaucoup vers le haut ou vers le bas pour trouver le thread effectuant une tâche particulière.

    Le côté gauche de la vue détaillée du Microprofiler, avec des lignes pour les threads.
  • Faire défiler zoom le mouvement de la chronologie. Combiné avec les étiquettes en millisecondes en haut de la chronologie, vous pouvez avoir une idée de combien de temps une tâche a pris dans un sens absolu, mais aussi combien de temps elle a pris par rapport à d'autres tâches.

    La vue détaillée du Microprofiler avec de nombreuses étiquettes horizontales.
  • L'overlay vert sur le graphique à barres indique le nombre de cadres actuellement visibles sur la chronologie—votre niveau de zoom. Cliquez sur une barre de cadre pour vous déplacer à cette position sur la chronologie.

    Vous pourriez devoir ajuster votre niveau de zoom, mais survoler une barre met en surbrillance le cadre sur la chronologie. Des lignes grises claires délimitent les cadres.

    Le graphique à barres du MicroProfiler avec un overlay vert pour montrer le niveau de zoom.
  • Les étiquettes qui apparaissent directement en dessous d'une autre étiquette indiquent les tâches qui sont effectuées dans le cadre de la tâche de niveau supérieur.

    Plutôt que la tâche parente, vous voudrez généralement dépanner les tâches enfants les moins performantes ; une tâche parente ne peut pas être plus courte que la somme de ses tâches enfants.

  • Cliquez avec le bouton droit sur une étiquette pour zoomer la chronologie exactement à la durée de cette tâche.

  • Si la quantité d'informations est écrasante, utilisez le menu Groupes ou Threads pour filtrer la chronologie. Par exemple, vous pourriez vouloir ne voir que les tâches Rendu dans le thread principal.

    La vue au survol pour une étiquette, avec le groupe surligné.
  • Utilisez CtrlF (F) pour sauter à l'occurrence d'une tâche qui prend le plus de temps dans le dump. Par exemple, computeLightingPerform s'exécute dans chaque cadre client. Si vous le cherchez dans un dump avec 128 cadres, vous pouvez sauter au cadre où il a pris le plus de temps à compléter.

Threads

Comme beaucoup de programmes, Roblox utilise plusieurs threads pour effectuer des séquences de tâches en même temps. Le MicroProfiler affiche le nom du thread sur le côté gauche de la chronologie.

Le côté gauche de la vue détaillée du Microprofiler, avec des lignes pour les threads.

Il y a trois types de threads importants :

  • Principal ("RBX Main") : Gère les tâches de rendu basées sur le CPU. Traite les entrées, Humanoids, animations/tweening, propriété de la physique, son et attend les reprises de script. Met également à jour les interfaces de Studio et coordonne les autres threads.

  • Travailleur ("RBX Worker") : Aide le thread principal avec le réseau, la physique et le pathfinding. En raison du nombre de cœurs dans les CPUs modernes, vous avez probablement de nombreux threads de travail, dont la plupart sont dans un état de sommeil à tout moment.

  • Rendu ("GPU") : Suit une logique de "préparer, exécuter, présenter". Communique avec l'unité de traitement graphique (GPU) de l'appareil.

    • Préparer : Les informations du thread principal sont utilisées pour mettre à jour les modèles de rendu.
    • Exécuter : Émet des commandes de rendu, y compris les interfaces 2D.
    • Présenter : Se synchronise avec le GPU.

Profils de scripts personnalisés

Si vos scripts exécutent des tâches complexes, vous pouvez profiler des portions critiques du code pour vous assurer qu'elles ne prennent pas trop de temps. Enveloppez le code avec debug.profilebegin() et debug.profileend() pour chronométrer tout ce qui est fait entre ces appels de fonction et créer une étiquette sur la chronologie du MicroProfiler.

local RunService = game:GetService("RunService")
local function onPreSimulation()
debug.profilebegin("Hard Work")
-- Exemple de travail dur : échanger deux variables 200 000 fois
local a, b = 0, 1
for _ = 1, 200000 do
a, b = b, a
end
debug.profileend()
end
RunService.PreSimulation:Connect(onPreSimulation)
De nombreuses étiquettes sur le MicroProfiler, avec une étiquette personnalisée prenant la majorité du temps de traitement.

De par sa durée sur la chronologie, vous pouvez dire que la fonction utilise beaucoup de temps de traitement par rapport aux autres tâches.

Analyser des captures avec Assistant

Dans Studio, vous pouvez demander à Assistant d'analyser automatiquement une capture de MicroProfiler mise en pause, d'identifier les goulets d'étranglement de performance et de proposer des solutions.

  1. Dans Studio, ouvrez le MicroProfiler avec CtrlF6 (F6).
  2. Lorsque vous repérez un pic de temps de cadre, mettez la capture en pause en appuyant sur Pause dans le menu supérieur ou en utilisant CtrlP (P).
  3. Ouvrez l'Assistant et demandez-lui d'analyser la capture. Des exemples d'instructions comprennent :
    • "J'ai capturé un pic de temps de cadre dans le MicroProfiler—analyser-le."
    • "Qu'est-ce qui a causé le pic ?"
    • "Est-ce lié à la physique ou au script ?"
    • "Quelle catégorie a le temps exclusif le plus élevé ?"
    • "Quand je suis dans le hangar, les FPS chutent. Reproduisez le problème, utilisez le MicroProfiler pour trouver la cause, corrigez-le et retestez."

Assistant lit la capture mise en pause via l'API du MicroProfiler et retourne un rapport sur les goulets d'étranglement probables, avec des suggestions de changements de script ou de scène que vous pouvez appliquer.

Cette fonctionnalité fonctionne également via le serveur Studio MCP, donc vous pouvez intégrer les analyses du MicroProfiler dans votre propre agent IA ou boucle d'agents pour obtenir un retour automatisé sur la façon dont les nouveaux changements impactent la performance de votre jeu.

Enregistrer les données de cadre

Si vous souhaitez enregistrer un ensemble de données de cadre pour une révision ultérieure (ou pour les partager avec quelqu'un d'autre), utilisez le bouton Enregistrer dans le fichier. Le MicroProfiler enregistre les données de cadre dans un fichier HTML autonome nommé microprofile-<date>-<time>.html.

Le bouton enregistrer dans le fichier dans l'interface web.

Sur le client de bureau ou dans Studio, utilisez le menu Dump. Dans les deux cas, le MicroProfiler enregistre automatiquement le fichier dans le répertoire des journaux de Roblox :

  • Sur Windows, vérifiez %LOCALAPPDATA%\Roblox\logs.

    Si vous utilisez l'application Universel Windows Platform (UWP), vérifiez \Users\<username>\AppData\Local\Packages\ROBLOXCORPORATION.ROBLOX_<hash>\LocalState\logs\.

  • Sur macOS, vérifiez ~/Library/Logs/Roblox.

Profiler le serveur

En plus de profiler le client, vous pouvez capturer de brefs dumps de l'activité du serveur :

  1. Sur le client de bureau, rejoignez un jeu pour lequel vous avez des permissions d'édition.

  2. Ouvrez la Console Développeur avec CtrlF9 (F9).

  3. Dans le menu déroulant, sélectionnez MicroProfiler.

  4. Dans l'onglet Serveur, spécifiez le nombre de cadres à capturer (maximum 60) et le nombre de secondes à retarder avant de commencer la capture (maximum 4).

  5. Cliquez sur Commencer l'enregistrement du serveur.

    L'écran MicroProfiler de la Console Développeur.

    Après quelques secondes, la Console Développeur fournit le chemin vers le fichier, qui est le même chemin qu'un dump standard.

Fonctionnalités réservées au Web

Le MicroProfiler a deux interfaces utilisateur : l'interface web (mobile et dumps) et l'interface de bureau (client et Studio). Nous recommandons d'utiliser l'interface web chaque fois que possible. En général, les deux fonctionnent de manière similaire, mais l'interface web a quelques fonctionnalités supplémentaires :

  • Utilisez le menu Rayons X pour activer ou désactiver le codage couleur pour l'allocation de mémoire.

    La vue web du MicroProfiler avec rayons x activé.
    • Des cadres plus clairs dans le graphique à barres principal indiquent une allocation de mémoire plus élevée.
    • Des portions plus claires de la barre de prévisualisation et des étiquettes plus claires sur la chronologie indiquent des portions du cadre avec une allocation de mémoire plus élevée.
    • En mode rayons X, appuyez sur C pour afficher la taille totale des allocations de mémoire plutôt que le nombre d'allocations.
  • Utilisez le menu Exporter pour exporter un graphique de flammes CPU ou mémoire, une visualisation spécialisée qui agrège toutes les piles d'appels incluses dans le dump, maintient la hiérarchie parent-enfant et les taille en fonction de la durée. Les graphiques de flammes sont particulièrement utiles pour identifier des tâches qui ne causent pas de dépassement de vos objectifs de temps de cadre (et sont donc difficiles à remarquer), mais s'exécutent si souvent que leur temps de traitement devient significatif.

    Le graphique de flammes du MicroProfiler dans l'interface web.

    Vous pouvez également créer des graphiques de flammes dans Studio, bien que seulement pour les scripts (temps d'exécution et allocations mémoire). Comparé aux graphiques de flammes basés sur le web, ceux dans Studio sont de haut en bas plutôt que de bas en haut et prennent en charge des temps de capture considérablement plus longs.

    Le graphique de flammes du MicroProfiler dans Studio.
  • Glissez et déposez un second fichier dump dans l'interface web pour générer un graphique de flammes différentiel, ce qui peut vous aider à identifier les améliorations ou les régressions des performances de votre jeu au fil du temps. Cliquez sur Combiner & Comparer pour exporter un nouveau fichier HTML.

    Le générateur de graphique de flammes différentiel du MicroProfiler montrant les côtés gauche et droit.

    Le graphique de flammes différentiel met en évidence le dump (gauche ou droite) qui consomme plus de CPU ou de mémoire, avec des couleurs plus vives indiquant une plus grande différence.

    Le graphique de flammes différentiel du MicroProfiler.

Fonctionnalités réservées au Bureau

Sur la chronologie de bureau, cliquez avec le bouton gauche sur une étiquette pour l'ajouter à un graphique linéaire en bas à droite. Le graphique montre le temps que la tâche prend à chaque cadre. À l'aide de ce graphique, vous pouvez tester la performance de seulement certaines tâches dans votre jeu. Lorsque vous avez terminé, cliquez avec le bouton droit sur le graphique pour le masquer.

Le graphique montrant combien de temps les tâches prennent par cadre.

Ce graphique est synchronisé avec les barres principales du profiler. La plage de cadre actuellement sélectionnée est mise en surbrillance en vert sur le graphique. Vous pouvez également cliquer n'importe où sur ce graphique pour recentrer la vue principale du profiler sur ce cadre spécifique, ce qui est utile pour trouver des pics dans la vue détaillée.

©2026 Société Roblox. Roblox, le logo Roblox et Powering Imagination font partie de nos marques déposées aux États-Unis et dans d'autres pays.