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 des performances et de dépannage dans Roblox Studio et le client Roblox. Il fournit des informations détaillées et visuelles sur le temps nécessaire à l'exécution de 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.

Durées des images

Pour utiliser le MicroProfiler, vous devez comprendre la relation entre durée d'image et taux d'images.

  • La durée d'image est le temps qu'une image a pris pour se rendre à l'écran, généralement mesurée en millisecondes.
  • Le taux d'images est le nombre d'images rendues à l'écran, généralement mesuré en images par seconde (FPS).

De plus faibles durées d'image signifient un taux d'images plus élevé. Divisez 1 000 millisecondes (1 seconde) par la durée d'image pour obtenir le taux d'images.

Durée d'image moyenneImages par seconde
33.33 ms30 FPS
16.67 ms60 FPS
8.33 ms120 FPS
4.17 ms240 FPS

Pour un gameplay fluide, cependant, il ne suffit pas d'avoir un taux d'images élevé. Vous avez besoin de durées d'image cohérentes. 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 tourne à 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, en particulier à des taux d'images plus bas.

Le MicroProfiler se concentre entièrement sur la durée d'image. Son but est de vous aider à identifier les pics de durée 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 en Activé. Ensuite, depuis un ordinateur de développement sur le même réseau, utilisez votre navigateur web pour naviguer vers l'adresse IP et le 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, donc vous naviguez vers 172.18.56.105:1338. Selon la configuration réseau de votre appareil, vous pourriez voir plusieurs adresses IP. Si 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 fortes contraintes thermiques et énergétiques qui limitent leurs performances. Si votre jeu fonctionne bien sur une tablette Android de milieu de gamme, il fonctionnera presque certainement beaucoup mieux sur un ordinateur de bureau dédié aux jeux.

Notions de base du MicroProfiler

Le MicroProfiler a deux composants clés : le graphique à barres de durée d'image et la timeline des tâches détaillées.

  • Le graphique de durée d'image s'étend le long du haut de l'interface et montre combien de temps chaque image a pris pour se rendre. Des barres plus hautes signifient des durées d'image plus longues.
  • La timeline 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 de durée d'image pour identifier un pic (une barre plus haute) et ensuite utiliser la timeline pour identifier quelles tâches ont causé le pic. Ensuite, vous pouvez consulter la Référence des balises pour des informations sur la tâche et comment améliorer sa performance.

Exemple d'un pic de durée d'image.

Graphique de durée 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 sont à droite. Survolez une image pour obtenir des informations de base sur l'utilisation du CPU et du GPU.

Le graphique de durée d'image du MicroProfiler, montrant des images bleues et des informations détaillées sur les images.
  • 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 exécutent des tâches comme l'exécution de scripts, le calcul de la physique et la lecture d'animations, a pris plus de temps à s'exécuter que le thread de rendu principal.

    Si le jeu n'atteint pas vos objectifs de durée 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 durée d'image et a un grand nombre d'images bleues, cela indique un goulot d'étranglement en matière de rendu. Les causes courantes sont une densité d'objets excessive, des mouvements d'objets et un éclairage inadéquat. Voir Améliorer les performances.

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

    • Le temps d'attente de rendu dépasse le temps d'attente des tâches
    • Temps d'attente GPU est supérieur à 2,5 millisecondes

    Les barres rouges sont moins courantes que les orange et bleues et sont souvent le résultat d'une complexité d'objet excessive, d'une taille de texture importante et d'effets visuels. L'optimisation est similaire à celle des barres bleues. Voir Améliorer les performances.

De toutes 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 la durée 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 durée d'image. Si vous n'atteignez pas vos objectifs de durée d'image, les couleurs peuvent indiquer où optimiser.

Timeline

  • Cliquez avec le bouton gauche de la souris et faites glisser pour faire défiler la timeline. 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 exécutant une tâche particulière.

    Le côté gauche de la vue détaillée du MicroProfiler, avec des rangées pour les threads.
  • Le défilement zoom dans et hors de la timeline. Associé aux étiquettes en millisecondes en haut de la timeline, vous pouvez avoir une idée du temps qu'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 d'images actuellement visibles sur la timeline—votre niveau de zoom. Cliquez à gauche sur une barre d'image pour sauter à cette position sur la timeline.

    Vous pourriez avoir à ajuster votre niveau de zoom, mais survoler une barre met en surbrillance l'image sur la timeline. Des lignes grises claires délimitent les images.

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

    Plutôt que la tâche parente, vous souhaitez généralement résoudre les tâches enfants qui fonctionnent le moins bien ; 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 timeline 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 timeline. Par exemple, vous pouvez vouloir voir uniquement les tâches Rendu dans le thread principal.

    La vue au survol pour une étiquette, avec le groupe en surbrillance.
  • Utilisez CtrlF (F) pour sauter à l'occurrence d'une tâche qui prend le plus de temps dans la capture. Par exemple, computeLightingPerform s'exécute dans chaque image client. Si vous le recherchez dans une capture avec 128 images, vous pouvez aller à l'image où elle a pris le plus de temps à se compléter.

Threads

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

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

Il existe 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, les animations/animations d'accélération, la propriété de la physique, le son et attend la reprise des scripts. Met également à jour les interfaces de Studio et coordonne les autres threads.

  • Travailleur ("RBX Worker") : Aide le thread principal avec la mise en réseau, la physique et la recherche de chemin. 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 veille à tout moment donné.

  • Rendu ("GPU") : Suit une logique "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 : Se 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 timeline du MicroProfiler.


local RunService = game:GetService("RunService")
local function onPreSimulation()
debug.profilebegin("Hard Work")
-- 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)
Beaucoup d'étiquettes sur le MicroProfiler, avec une étiquette personnalisée prenant la majorité du temps de traitement.

D'après sa durée sur la timeline, vous pouvez dire que la fonction utilise beaucoup de temps de traitement par rapport aux autres tâches.

Enregistrer les données d'image

Si vous souhaitez enregistrer un ensemble de données d'image pour un examen ultérieur (ou 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.

Le bouton enregistrer dans un 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 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 courts dumps de l'activité du serveur :

  1. Sur le client de bureau, rejoignez un jeu pour lequel vous avez des droits 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 d'images à 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 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 autant 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 Rayon X pour activer ou désactiver le codage couleur pour l'allocation de mémoire.

    La vue web du MicroProfiler avec le rayon X activé.
    • Les images plus claires dans le graphique à barres principal indiquent une allocation de mémoire plus élevée.
    • Les parties plus claires de la barre de prévisualisation et les étiquettes plus claires sur la timeline indiquent des parties de l'image avec une allocation de mémoire plus élevée.
    • En mode rayon 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 dimensionne en fonction de la durée. Les graphiques de flammes sont particulièrement utiles pour identifier des tâches qui ne vous causent pas de manquer vos objectifs de durée d'image (et sont donc difficiles à remarquer), mais qui s'exécutent si souvent que leur temps de traitement devient significatif.

    Le graphique de flammes 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és 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 beaucoup plus longs.

    Le graphique de flammes MicroProfiler dans Studio.
  • Faites glisser et déposez un deuxième fichier de dump dans l'interface web pour générer un graphique de flammes de différence, qui peut vous aider à identifier des améliorations ou des régressions dans les 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 de différence MicroProfiler montrant les côtés gauche et droit.

    Le graphique de flammes de différence met en lumière le dump (gauche ou droite) qui consomme plus de CPU ou de mémoire, les couleurs plus vives indiquant une plus grande différence.

    Le graphique de flammes de différence MicroProfiler.

Fonctionnalités uniquement bureau

Sur la timeline du bureau, cliquez avec le bouton gauche sur une étiquette pour l'ajouter à un graphique linéaire dans le coin inférieur droit. Le graphique montre le temps que la tâche prend pour chaque image. À l'aide de ce graphique, vous pouvez tester les performances de certaines tâches seulement 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 image.

Ce graphique est synchronisé avec les barres du profiler principal. La plage d'images actuellement sélectionnée est mise en évidence 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.

©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.