Le MicroProfiler est un outil d'optimisation des performances et de dépannage dans Roblox Studio et le client Roblox. Il fournit des informations de timing visuelles et détaillées pour toutes les tâches du moteur qui s'exécutent pendant une image, 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 ont été exécutées pendant quelle image, combien de temps ces tâches ont pris pour s'exécuter et si certaines ont causé un dépassement de vos objectifs de temps d'image.
Temps d'image
Pour utiliser le MicroProfiler, vous devez comprendre la relation entre le temps d'image et le taux d'images.
- Le temps d'image est le temps qu'une image a pris pour être rendue à l'écran, généralement mesuré en millisecondes.
- Le taux d'images est le nombre d'images rendues à l'écran, généralement mesuré en images par seconde (FPS).
Des temps d'image plus bas signifient un taux d'images plus élevé. Divisez 1 000 millisecondes (1 seconde) par le temps d'image pour obtenir le taux d'images.
| Temps d'image moyen | Images par seconde |
|---|---|
| 33,33 ms | 30 FPS |
| 16,67 ms | 60 FPS |
| 8,33 ms | 120 FPS |
| 4,17 ms | 240 FPS |
Cependant, pour un gameplay fluide, il ne suffit pas d'avoir un taux d'images élevé. Vous avez besoin de temps d'image cohérents. Par exemple, si 59 images arrivent en 10 millisecondes et une image en 410 millisecondes, les joueurs perçoivent un énorme et choquant décalage, même si le jeu fonctionne à 60 FPS. Si toutes les images prennent à peu près le même temps à rendre, votre jeu semblera perceptiblement plus fluide grâce à cette cohérence, surtout à des taux d'images plus bas.
Le MicroProfiler se concentre entièrement sur le temps d'image. Son but est de vous aider à identifier les pics de temps d'image et ce qui les a causés.
Ouvrir le MicroProfiler
L'ouverture du 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.

Cette capture d'écran montre une adresse IP de 172.18.56.105 et un port de 1338, donc vous naviguez 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 appareils ont de sévères contraintes thermiques et énergétiques qui limitent leurs performances. Si votre jeu fonctionne bien sur une tablette Android de milieu de gamme, il fonctionne presque certainement beaucoup mieux sur un ordinateur de jeu.
Notions de base du MicroProfiler
Le MicroProfiler a deux composants clés : le graphique à barres du temps d'image et la chronologie des tâches détaillées.
- Le graphique du temps d'image s'étend le long du haut de l'interface et montre combien de temps chaque image a pris pour être rendue. Des barres plus hautes signifient des temps d'image plus longs.
- La chronologie montre toutes les tâches individuelles qui se sont exécutées pendant l'image. 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 du temps d'image 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 balises pour obtenir des informations sur la tâche et comment améliorer ses performances.

Graphique du temps d'image
La hauteur de chaque barre indique le nombre de millisecondes qu'il a fallu pour compléter l'image. Les images les plus récentes se trouvent à droite. Survolez une image pour obtenir des informations de base sur l'utilisation du CPU et du GPU.

Les barres orange sont des images où le Temps d'Attente des Tâches dépasse le Temps d'Attente de Rendu. Dans ces images, 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 de rendu principal.
Si le jeu n'atteint pas vos objectifs de temps d'image et a un grand nombre d'images orange, les causes courantes sont les scripts, la physique et les animations. Voir Améliorer les performances.
Les barres bleues sont des images où le Temps d'Attente de Rendu dépasse le Temps d'Attente des Tâches. Dans ces images, le thread de rendu principal a pris plus de temps que n'importe lequel des threads de travail.
Si le jeu n'atteint pas vos objectifs de temps d'image et a un grand nombre d'images bleues, cela indique un goulet d'étranglement de rendu. Les causes courantes sont une densité d'objets excessive, le mouvement des objets et l'éclairage. Voir Améliorer les performances.
Les barres rouges sont des images où deux conditions sont vraies :
- Temps d'Attente de Rendu dépasse Temps d'Attente des Tâches
- Temps d'Attente GPU est supérieur à 2,5 millisecondes
Les barres rouges sont moins courantes que les barres orange et bleues et sont souvent le résultat d'une complexité excessive des objets, de la taille des textures et des effets visuels. L'optimisation est similaire à celle des barres bleues. Voir Améliorer les performances.
De petites tâches à la fin d'une image peuvent parfois fausser le Temps d'Attente des Tâches et le Temps d'Attente de Rendu, ce qui est une bonne raison de se concentrer davantage sur le temps d'image que sur la couleur de l'image. 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 d'image. Si vous n'atteignez pas vos objectifs de temps d'image, 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 avoir besoin de faire défiler vers le haut ou vers le bas pour trouver le thread effectuant une tâche particulière.

Le défilement permet de zoomer sur 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.

Le superposition verte sur le graphique à barres indique le nombre d'images actuellement visibles sur la chronologie—votre niveau de zoom. Cliquez avec le bouton gauche sur une barre d'image pour sauter à cette position sur la chronologie.
Vous pourriez devoir ajuster votre niveau de zoom, mais survoler une barre met en surbrillance l'image sur la chronologie. Des lignes grises claires délimitent les images.

Les étiquettes qui apparaissent directement sous une autre étiquette indiquent des 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 souhaitez 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 sur 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 voir uniquement les tâches Rendu dans le thread principal.

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 image client. Si vous le recherchez dans un dump avec 128 images, vous pouvez sauter à l'image où il a pris le plus de temps à compléter.
Threads
Comme de nombreux 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.

Il existe trois types de threads importants :
Principal ("RBX Principal") : 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 attente des reprises de script. Met également à jour les interfaces de Studio et coordonne les autres threads.
Travailleur ("RBX Travailleur") : Aide le thread principal avec le réseau, la physique et le pathfinding. En raison du nombre de cœurs dans les CPU 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 des interfaces 2D.
- Présenter : Synchronise avec le GPU.
Profils de script personnalisés
Si vos scripts exécutent des tâches compliquées, 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("Travail Difficile")
-- Exemple de travail difficile : é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)
D'après sa durée sur la chronologie, vous pouvez dire que la fonction utilise beaucoup de temps de traitement par rapport à d'autres tâches.
Analyser les captures avec Assistant
Dans Studio, vous pouvez demander à Assistant d'analyser automatiquement une capture MicroProfiler mise en pause, d'identifier les goulets d'étranglement de performance et de proposer des corrections.
- Dans Studio, ouvrez le MicroProfiler avec CtrlF6 (⌘F6).
- Lorsque vous repérez un pic de temps d'image, mettez la capture en pause en appuyant sur Pause dans le menu supérieur ou en utilisant CtrlP (⌘P).
- Ouvrez Assistant et demandez-lui d'analyser la capture. Des exemples de requêtes incluent :
- "J'ai capturé un pic de temps d'image dans le MicroProfiler—analysez-le."
- "Qu'est-ce qui a causé le pic ?"
- "Est-ce lié à la physique ou aux scripts ?"
- "Quelle catégorie a le temps exclusif le plus élevé ?"
- "Quand je suis dans le hangar, le FPS chute. 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 MicroProfiler et renvoie un rapport sur les goulets d'étranglement probables, ainsi que des modifications de script ou de scène proposées que vous pouvez appliquer.
Cette fonctionnalité fonctionne également via le serveur Studio MCP, vous pouvez donc intégrer les analyses du MicroProfiler dans votre propre agent IA ou boucle agentique pour obtenir des retours automatisés sur la façon dont les nouvelles modifications impactent les performances de votre jeu.
Enregistrer les données d'image
Si vous souhaitez enregistrer un ensemble de données d'image pour une révision ultérieure (ou pour les partager avec quelqu'un d'autre), utilisez le bouton Enregistrer dans un fichier. Le MicroProfiler enregistre les données d'image dans un fichier HTML autonome nommé microprofile-<date>-<heure>.html.

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 Roblox :
Sur Windows, vérifiez %LOCALAPPDATA%\Roblox\logs.
Si vous utilisez l'application Universal Windows Platform (UWP), vérifiez \Users\<nom_utilisateur>\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 d'activité du serveur :
Sur le client de bureau, rejoignez un jeu pour lequel vous avez des permissions d'édition.
Ouvrez la Console de Développeur avec CtrlF9 (⌘F9).
Dans le menu déroulant, sélectionnez MicroProfiler.
Dans l'onglet Serveur, spécifiez le nombre d'images à capturer (maximum 60) et le nombre de secondes à attendre avant de commencer la capture (maximum 4).
Cliquez sur Commencer l'enregistrement du serveur.

Après quelques secondes, la Console de Développeur fournit le chemin vers le fichier, qui est le même chemin qu'un dump standard.
Fonctionnalités uniquement 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.

- Des images plus claires dans le graphique à barres principal indiquent une allocation de mémoire plus élevée.
- Des portions plus claires de la barre d'aperçu et des étiquettes plus claires sur la chronologie indiquent des portions de l'image 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 flamme CPU ou mémoire, une visualisation spécialisée qui agrège tous les piles d'appels inclus dans le dump, maintient la hiérarchie parent-enfant et les dimensionne en fonction de la durée. Les graphiques de flamme sont particulièrement utiles pour identifier des tâches qui ne vous font pas manquer vos objectifs de temps d'image (et sont donc difficiles à remarquer), mais qui s'exécutent si souvent que leur temps de traitement devient significatif.

Vous pouvez également créer des graphiques de flamme dans Studio, bien que seulement pour les scripts (temps d'exécution et allocations de mémoire). Comparé aux graphiques de flamme 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 beaucoup plus longs.

Faites glisser et déposez un deuxième fichier dump dans l'interface web pour générer un graphique de flamme diff, ce qui peut vous aider à identifier des améliorations ou des régressions des performances de votre jeu au fil du temps. Cliquez sur Combiner & Comparer pour exporter un nouveau fichier HTML.

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

Fonctionnalités uniquement de 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 image. En utilisant ce graphique, vous pouvez tester les performances de certaines tâches uniquement dans votre jeu. Lorsque vous avez terminé, cliquez avec le bouton droit sur le graphique pour le masquer.

Ce graphique est synchronisé avec les barres du profiler principal. La plage d'images 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 cette image spécifique, ce qui est utile pour trouver des pics dans la vue détaillée.
Rechercher dans la vue détaillée
Sur le client de bureau, vous pouvez rechercher des tâches par nom dans la vue Détaillée :
Ouvrez le MicroProfiler avec CtrlF6 (⌘F6) et passez en mode Détaillé.
Appuyez sur CtrlF (⌘F) pour ouvrir la boîte de recherche.
Tapez une partie d'un nom de tâche ou d'étiquette. La correspondance est insensible à la casse et trouve le texte n'importe où dans le nom. Les étiquettes correspondantes conservent leur couleur et toutes les autres étiquettes sont atténuées. Les images contenant une correspondance sont mises en surbrillance dans le graphique du temps d'image.
Déplacez-vous entre les correspondances :
Action Raccourci Correspondance suivante F3 ou Entrée Correspondance précédente ShiftF3 ou ShiftEntrée Vous pouvez également cliquer sur les boutons < et > à côté de la boîte de recherche. La correspondance actuelle est entourée et marquée d'un triangle au-dessus, et un compteur tel que 12 / 340 montre sa position parmi toutes les correspondances. Si la correspondance est hors écran, la chronologie défile pour l'afficher. Si vous avez fait défiler la chronologie, la navigation continue à partir des correspondances actuellement visibles.
Appuyez sur Échap, ou appuyez à nouveau sur CtrlF (⌘F), pour fermer la recherche. Fermer la recherche ne ferme pas le MicroProfiler.