Référence des balises

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

La liste suivante présente des balises courantes dans le MicroProfiler, regroupées par catégorie. Les balises sont également appelées, de manière interchangeable, tâches, temporisateurs, portées, processus et étiquettes. Quel que soit le nom, elles représentent une unité de travail.

Comprendre ces balises peut vous aider à identifier le code problématique dans votre jeu. Les tableaux contiennent des étiquettes de balises, des descriptions et des conseils pour améliorer les performances et optimiser votre jeu.

Sommeil

Lorsque les threads n'effectuent pas activement de tâches, ils entrent dans un état de sommeil, avec des balises pour indiquer combien de temps le thread était en veille. À tout moment, il est extrêmement courant que la plupart des threads de travail soient dans un état de sommeil.

ÉtiquetteDescriptionConseils de performance
rasterizeTileMet à jour les tuiles de navigation nécessaires pour une demande de pathfinding, généralement suivie par computePath qui nécessite que ces tuiles soient à jour. Suit NavigationJob/preprocess sur le thread principal.Réduisez le nombre d'invalidations de tuiles de pathfinding, car cela nécessite de recalculer ces chemins. Cela est causé par le mouvement des parties non navigables.
computePath

Calcule les chemins, généralement après rasterizeTile.

Réduisez le nombre et les étendues mondiales des appels à Path:ComputeAsync(). Essayez de réutiliser les chemins pour plusieurs agents s'ils sont censés commencer/terminer à des emplacements à peu près similaires.
preprocess/getPrimitivesOverlappingCollecte la géométrie du monde pour chaque tuile de pathfinding et planifie les tâches de rasterisation à exécuter par le thread de pathfinding.Réduisez le nombre de parties.

Animation et humanoïdes

ÉtiquetteDescriptionConseils de performance
Simulation/gameSteppedTraitement des objets spécifiques au jeu tels que Humanoids, Animations et les rappels de battement de cœur.Voir les étiquettes gameStepped ci-dessous.
Simulation/gameStepped/stepHumanoidChangements d'état et mouvement de Humanoid.Réduisez le nombre de Humanoids ou désactivez les états de Humanoid sur les PNJ qui n'en ont pas besoin, tels que Climbing ou Swimming. Réduisez les rappels à Humanoid.StateChanged ou aux changements d'état tels que Running ou Died.
Simulation/gameStepped/stepAnimationAnimators avancera dans les animations actuellement en cours de lecture.Réduisez le nombre de Animators ou d'articulations animées pour diminuer la charge de travail de cette étape. Réduisez le nombre de rappels aux événements d'animation tels que AnimationTrack.KeyframeReached ou AnimationTrack.Ended.
Simulation/gameStepped/RunService.SteppedExécute les fonctions connectées à l'événement RunService.Stepped.Réduisez le nombre ou la charge de travail des fonctions connectées à cet événement. Envisagez de retarder ou de remplacer les calculs coûteux ou de répartir le calcul sur plusieurs images.

Audio

ÉtiquetteDescriptionConseils de performance
SonTraite la simulation acoustique et met à jour les sons en lecture active.Voir les étiquettes Son ci-dessous.
Son/stepInstancesMet à jour le volume des sons actifs dans l'espace de travail.Réduisez le nombre de sons en lecture active.

Réseau

ÉtiquetteDescriptionConseils de performance
Net PacketReceiveReçoit des paquets réseau. Si de nombreux objets ou événements sont répliqués, cette étape dure plus longtemps.Répliquez moins d'objets ou d'événements.
Replicator/ProcessPacketsTraite le contenu des paquets réseau, tels que les mouvements, les invocations d'événements et les changements de propriétés.Réduisez le nombre ou la taille des objets répliqués, ou faites-le par étapes incrémentales. Peut augmenter si la taille de la carte augmente, car les cartes plus grandes tendent à avoir plus d'activité globale.
Allocate Bandwidth and Run Senders/Dispatch Physics Senders and TouchSendersEnvoie des données sur l'activité dans le jeu.Réduisez le nombre d'objets en mouvement et/ou de touches. Voir les sections suivantes.
Allocate Bandwidth and Run Senders/Dispatch StreamJobEnvoie des régions spécifiques à des clients spécifiques dans la fonction de streaming.Réduisez les rayons de streaming minimum et cible.
Allocate Bandwidth and Run Senders/Dispatch Data SendersEnvoie des changements de propriétés, des invocations d'événements distants, des changements d'état de Humanoid, des changements d'état d'animation et la répliques de nouvelles instances.Réduisez le nombre de changements répliqués dans le modèle de données.
Replicator SendClusterEnvoie des données Terrain aux clients.Réduisez la quantité ou la taille des changements de terrain.
ModelCompleteness Mega JobServeur uniquement : la complétude est un concept interne. Lorsque les modèles sont complètement envoyés, des événements de complétude de modèles sont envoyés.Ajoutez ou retirez moins d'instances.
deserializePacketTraitement de paquets réseau au niveau bas. Prépare pour Replicator/ProcessPackets.Envoyez moins ou des mises à jour plus petites.

Rendu

ÉtiquetteDescriptionConseils de performance
PréparerLes informations sont recueillies à partir du thread principal et mettent à jour diverses structures de données utilisées pour le rendu.Voir les étiquettes Préparer ci-dessous.
Préparer/Pass3dAdornGère le rendu de divers ornements d'objets, tels que les étiquettes de texte au-dessus des objets. Pour les étiquettes de Humanoid avec occlusion, cette étape inclut le raycasting pour déterminer si ces objets sont visibles. Cela inclut des parties non transparentes pour faciliter les visualisations de débogage.Réduisez le nombre d'objets ornés visibles, tels que BillboardGuis, les étiquettes de nom/santé de Humanoid, etc. Réduisez le nombre de parties visibles.
Préparer/Pass2dPrépare le rendu de l'interface utilisateur 2D (tant celle du joueur que celle de Roblox).Réduisez la quantité ou la complexité des éléments d'interface utilisateur.
Préparer/UpdatePrepare/updateInvalidPartsMet à jour les parties qui ont eu une propriété changée ou ajoutée.Réduisez le nombre de changements de propriétés dans le monde. Si un script met à jour un grand ensemble de propriétés d'objets, divisez-le sur plusieurs frames.
Préparer/UpdatePrepare/updateInvalidatedFastClustersPrépare les géométries "FastCluster" utilisées pour rendre Humanoids et les MeshParts skinnés. Les étiquettes spécifient le nombre de parties, de sommets et la taille des sommets.Réduisez les changements visuels des modèles avec Humanoids ou les MeshParts skinnés.
Préparer/UpdatePrepare/updateDynamicPartsPrépare les Beams, ParticleEmitters et Humanoids pour le rendu.Réduisez le nombre de Beams, ParticleEmitters et Humanoids visibles.
Préparer/UpdatePrepare/updateInstancedClustersMet à jour la géométrie qui utilise le rendu instancié, tel que les parties. Les étiquettes Clusters et Instances indiquent le nombre mis à jour.Réduisez le travail qui met à jour implicitement la boîte englobante de la partie, comme BasePart.CFrame, BasePart.Size, ou Motor6D.Transform. Les mises à jour créatives de propriété comme Bone.Transform peuvent aider.
EffectuerLorsque les commandes de rendu réelles sont créées et émises.Voir les étiquettes Effectuer ci-dessous.
Effectuer/fillGuiVerticesRemplit les tampons avec des vertices d'interface utilisateur pour préparer le rendu. L'étiquette gui count indique la quantité de LayerCollectors visibles dans la frame.Si le coût est élevé, réduisez la quantité, la densité et l'espace occupé par les éléments de l'interface utilisateur. S'il y a trop d'étiquettes Process GuiEffect, envisagez de réduire l'utilisation de UIGradient et UICorner sur les étiquettes de texte.
Effectuer/Scene/queryFrustumOrderedApplique le culling de frustum afin que les objets non visibles ne soient pas rendus.Si le coût est élevé, cela signifie qu'il y a de nombreux éléments. Envisagez d'utiliser des maillages plus grands où un seul maillage a plus de détails par rapport à de nombreuses petites pièces individuelles.
Effectuer/Scene/computeLightingPerformCalcul de l'éclairage près de la caméra.Manipulez le nombre de sources lumineuses ou déplacez moins la caméra pour réduire le temps nécessaire au recalcul de l'éclairage.
Effectuer/Scene/computeLightingPerform/LightGridCPUMet à jour l'éclairage voxel, qui est utilisé à des niveaux de qualité inférieurs.Si la mise à jour de l'occupation des morceaux prend trop de temps, envisagez d'utiliser une géométrie de plus basse résolution, de réduire le nombre de parties ou d'ancrer les parties. Si les autres étiquettes prennent trop de temps, envisagez de réduire le nombre de lumières et d'utiliser une géométrie qui ne projette pas d'ombre pour les objets qui se déplacent et invalident l'occupation.
Effectuer/Scene/computeLightingPerform/ShadowMapSystemMet à jour les cartes d'ombre. Pas effectué à des niveaux de qualité inférieurs à 4.Réduisez le nombre de lumières. Vous pouvez également utiliser Light.Shadows et BasePart.CastShadow pour désactiver la projection d'ombre sur les instances moins importantes. Voir Améliorer les performances.
Effectuer/Scene/Glow, ColorCorrection, MSAA, SSAO, et SSAOApplyRendu de post-traitement.Réduisez le nombre d'effets de post-traitement. En général, cela n'est pas significatif.
Effectuer/Scene/UIRendu de l'interface utilisateur. Dans Id_Screen, il y a une étiquette avec le nombre de lots, matériaux et triangles utilisés.Réduisez le nombre d'éléments d'interface utilisateur visibles. L'utilisation de CanvasGroups peut aider au détriment d'une augmentation de l'utilisation de la mémoire.
Effectuer/Scene/UpdateView/updateParticles, updateParticleBoundingsMet à jour la position et les limites des particules.Réduisez le nombre de ParticleEmitters, les taux d'émission, les durées de vie, etc. Limitez le mouvement des émetteurs.
Scene/Id_Opaque, RenderView/Id_OpaqueParties dans la scène avec une transparence globale de 0.01 ou moins.Réduisez l'utilisation et la densité des parties.
Scene/Id_Transparent, RenderView/Id_TransparentParties dans la scène avec une transparence globale comprise entre 0.01 et 1.Réduisez l'utilisation de la transparence partielle.
Scene/Id_Decals, RenderView/Id_DecalsAutocollants dans la scène.Réduisez l'utilisation d'autocollants sur des maillages complexes.
Scene/ShadowRecalcul des ombres dans la scène, généralement effectué sur des scènes dynamiques et un gameplay typique. Les parties, quelle que soit la transparence, projettent des ombres sous l'hypothèse qu'elles contiennent des autocollants. Pas effectué à des niveaux de qualité inférieurs à 4.Si cette étape prend trop de temps, envisagez de désactiver BasePart.CastShadow pour des maillages complexes, des parties avec une haute transparence partielle et des instances moins importantes. Les parties totalement transparentes qui n'ont pas d'autocollants ou qui ne nécessitent pas d'ombres d'autocollants devraient avoir BasePart.CastShadow désactivé. Voir Améliorer les performances.
Effectuer/PresentTransmet au thread GPU pour exécuter des commandes de rendu.Réduisez la complexité de la scène en général. Si cette étape prend beaucoup de temps, vous pourriez être limité par le GPU.
Effectuer/Present/waitUntilCompletedAttends que le GPU ait terminé le rendu de la frame précédente.Si cela se produit généralement beaucoup, alors la quantité de choses rendues est trop élevée. Le gestionnaire de fréquence d'image aide à équilibrer cela, mais s'il reste élevé, essayez de suivre les conseils de performance des balises Scene individuelles.
LoadImageTransforme des images dans un format utilisable par le moteur.Réduisez l'utilisation d'images grandes.

Scripts

ÉtiquetteDescriptionConseils de performance
Render/PreRender/fireBindToRenderSteppedCallbacksExécution des fonctions liées à l'étape de rendu via RunService:BindToRenderStep().Assurez-vous que les fonctions connectées à cet événement font le moins de travail possible.
Render/PreRender/RunService.RenderSteppedExécute les fonctions connectées à l'événement RunService.RenderStepped.Assurez-vous que les fonctions connectées à cet événement font le moins de travail possible.
WaitingHybridScriptJobReprend les scripts en attente en utilisant Instance:WaitForChild() ou Globals.Roblox.wait(). Généralement exécuté 30 fois par seconde. Cette étape dispose d'un budget de temps d'exécution pour exécuter des scripts en attente.Si vous avez trop de scripts en attente ou des scripts avec un long temps d'exécution avant de céder, cette étape est bridée et attend plus longtemps avant de pouvoir s'exécuter à nouveau. Réduisez le nombre de fonctions liées ou de calculs longs dans cette étape.
GCCyle de collecte des ordures de Luau.Regroupez les tables et d'autres objets collectables ou essayez de réduire la création de tables temporaires.
Heartbeat/RunService.HeartbeatExécute les fonctions connectées à l'événement RunService.Heartbeat.Réduisez le nombre ou la charge de travail des fonctions connectées à cet événement. Envisagez de retarder ou de remplacer les calculs coûteux ou de répartir le calcul sur plusieurs frames.

Simulation

ÉtiquetteDescriptionConseils de performance
Distribution de la propriété physiqueDétermine si le serveur ou un client a autorité sur certaines instances telles que des parties.Réduisez le nombre de parties qui changent fréquemment de propriété réseau, en particulier celles avec des interactions courantes.
Simulation/assembleMet à jour un arbre d'objets connectés (assemblages) utilisés par le moteur physique.Réduisez le nombre d'articulations créées ou détruites.
Simulation/physicsSteppedTotal/physicsSteppedExécute la simulation physique.Réduisez le nombre et la complexité des corps simulés physiquement.
Simulation/physicsSteppedTotal/physicsStepped/SpatialFilter/filterStepMet à jour les îles de simulation, arrangeant les parties selon la propriété réseau, la simulation locale. Les îles sont des groupes de parties non-interactifs qui peuvent être simulées indépendamment.Évitez de changer de propriété réseau fréquemment. Gardez les groupes de parties suffisamment éloignés les uns des autres pour qu'ils puissent être simulés séparément.
Simulation/physicsSteppedTotal/physicsStepped/worldStep/stepContactsMet à jour les contacts entre objets.Réduisez le nombre de corps entrant en collision simultanément, ou utilisez des boîtes de collision plus simples. Les cubes sont meilleurs que les maillages complexes.
Simulation/physicsSteppedTotal/physicsStepped/worldStep/stepWorld OU stepWorldThrottledRésout des équations physiques relatives aux connecteurs, à la flottabilité et à Humanoids. Lorsque le moteur est surchargé et incapable de simuler tout en temps réel, certaines étapes peuvent être bridées (stepWorldThrottled) et seules les "assemblées en temps réel" telles que Humanoids sont simulées.Dépend de l'allocation de temps en fonction des trois phases suivantes : stepContacts : tests géométriques de détection de collision en phase étroite. Solver step : intégrer le temps et résoudre les collisions et autres contraintes updateBroadphase : mettre à jour les positions des assemblages dans le système de détection de collision et trouver les paires en collision potentielles en phase étroite.
notifyMovingAssembliesAide à suivre combien de temps les primitives ont été en sommeil.
Simulation/physicsSteppedTotal/physicsStepped/interpolateNetworkedAssembliesInterpole les assemblages non contrôlés par le joueur actuel.Définissez le propriétaire réseau des parties au joueur actuel pour réduire cela ; bien que cela entraîne généralement plus de travail physique à faire ailleurs.
Simulation/handleFallenPartsRetire les parties qui sont tombées en dessous de Workspace.FallenPartsDestroyHeight.Abaissez la hauteur de destruction ou réduisez le nombre de parties qui tombent à la hauteur de destruction.
Heartbeat/heartbeatInternal/workspaceOnHeartbeat/updateVisuallySleepingDeuxième partie de notifyMovingAssemblies.
Heartbeat/RunService.HeartbeatExécute les fonctions connectées à l'événement RunService.Heartbeat pour la simulation et les contacts de scripts. La description actuelle est suffisamment générique pour ne pas être incorrecte.Réduisez le nombre ou la charge de travail des fonctions connectées à RunService.Heartbeat.
worldStep/stepContactsAide la simulation physique à traiter de nombreux contacts à la fois.Réduisez le nombre d'objets en collision.
SolveBatchAide la simulation physique à résoudre des lots de mouvements d'objets.

UI

ÉtiquetteDescriptionConseils de performance
Render/PreRender/UpdateInputMet à jour et déclenche tous les événements liés à l'entrée utilisateur si l'utilisateur a effectué une entrée depuis la dernière image.Essayez de ne pas faire trop de travail directement lorsque vous obtenez l'entrée. Envisagez d'effectuer un minimum de traitement pour l'entrée, et les calculs plus importants devraient être délégués à un autre fil qui se produira plus tard.
Render/PreRender/TweenServiceMet à jour les objets étant animés par TweenService et appelle les rappels de complétion, tels que ceux fournis à GuiObject:TweenSize() ou GuiObject:TweenPosition().Réduisez le nombre d'objets animés par TweenService et assurez-vous que les rappels font le moins de travail possible.
Heartbeat/TweenServiceSur le serveur, TweenService s'exécute dans RunService.Heartbeat au lieu de RunService.PreRender.Réduisez le nombre d'objets animés par TweenService et assurez-vous que les rappels font le moins de travail possible.
Render/PreRender/UpdateUILayoutsMet à jour la position et la taille des éléments d'interface utilisateur sur tous les LayerCollectors activés.Voir les étiquettes UpdateUILayouts ci-dessous.
Render/PreRender/UpdateUILayouts/Rebuild Z-order listTrie l'ordre Z des éléments d'interface utilisateur (terme interne à ne pas confondre avec GuiObject.ZIndex) pour empêcher les déchirures des éléments d'interface utilisateur.Réduisez le nombre d'éléments d'interface utilisateur avec le même GuiObject.ZIndex.
Render/PreRender/UpdateUILayouts/Layout

Met à jour la position et la taille des éléments d'interface utilisateur dans un LayerCollector individuel. Peut contenir une étiquette avec des informations sur l'interface utilisateur concernée, ainsi que le nombre de Relayouts, Updates et Resizes.

Réduisez le nombre d'éléments d'interface utilisateur redimensionnés ou repositionnés, tels que ceux gérés par UILayout et ceux animés avec TweenService, GuiObject:TweenSize() ou GuiObject:TweenPosition(). Envisagez d'utiliser des tailles fixes pour BillboardGuis.
©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.