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 tâches, minuteries, 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 a dormi. À 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 recherche de chemin, 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 recherche de chemin, car cela nécessite de recalculer ces chemins. Cela est causé par le mouvement de 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 recherche de chemin et planifie les tâches de rasterisation à exécuter par le thread de recherche de chemin.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 des 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 Humanoid sur les PNJ qui n'en ont pas besoin, tels que Climbing ou Swimming. Réduisez les rappels à Humanoid.StateChanged ou les changements d'état tels que Running ou Died.
Simulation/gameStepped/stepAnimationAnimators avancera dans les animations actuellement jouées.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 des 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 des calculs coûteux ou de répartir le calcul sur plusieurs images.

Audio

ÉtiquetteDescriptionConseils de performance
SoundTraite la simulation acoustique et met à jour les sons en lecture active.Voir les étiquettes Sound ci-dessous.
Sound/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 prend plus de temps.Répliquez moins d'objets ou d'événements.
Replicator/ProcessPacketsTraite le contenu des paquets réseau, tels que le mouvement, 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 ont tendance à 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 aux 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éplication 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 le nombre 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èle sont envoyés.Ajoutez ou retirez moins d'instances.
deserializePacketTraitement de paquets réseau de bas niveau. Prépare pour Replicator/ProcessPackets.Envoyez moins ou des mises à jour plus petites.

Rendu

ÉtiquetteDescriptionConseils de performance
PrepareLes informations sont collectées à partir du thread principal et mettent à jour diverses structures de données utilisées pour le rendu.Voir les étiquettes Prepare ci-dessous.
Prepare/Pass3dAdornGère le rendu de divers ornements d'objets, tels que des étiquettes de texte au-dessus des objets. Pour les étiquettes Humanoid avec occlusion, cette étape inclut le raycasting pour déterminer si de tels 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é Humanoid, etc. Réduisez le nombre de parties visibles.
Prepare/Pass2dPrépare le rendu de l'interface utilisateur 2D (à la fois pour le joueur et l'interface utilisateur Roblox).Réduisez le nombre ou la complexité des éléments de l'interface utilisateur.
Prepare/UpdatePrepare/updateInvalidPartsMet à jour les parties qui ont eu une propriété modifié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, décomposez-le sur plusieurs images.
Prepare/UpdatePrepare/updateInvalidatedFastClustersPrépare les géométries "FastCluster" utilisées pour rendre Humanoids et 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 MeshParts skinnés.
Prepare/UpdatePrepare/updateDynamicPartsPrépare Beams, ParticleEmitters et Humanoids pour le rendu.Réduisez le nombre de Beams, ParticleEmitters et Humanoids visibles.
Prepare/UpdatePrepare/updateInstancedClustersMet à jour la géométrie qui utilise le rendu instancié, comme 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. Des mises à jour de propriétés créatives telles que Bone.Transform peuvent aider.
PerformLorsque des commandes de rendu réelles sont créées et émises.Voir les étiquettes Perform ci-dessous.
Perform/fillGuiVerticesRemplit les tampons avec des sommets d'interface utilisateur pour préparer le rendu. L'étiquette gui count indique le nombre de LayerCollectors visibles dans l'image.Si le coût est élevé, réduisez le nombre, 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.
Perform/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 beaucoup d'é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.
Perform/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 pour recalculer l'éclairage.
Perform/Scene/computeLightingPerform/LightGridCPUMet à jour l'éclairage voxel, qui est utilisé à des niveaux de qualité inférieurs.Si la mise à jour de l'occupation des chunks prend trop de temps, envisagez d'utiliser une géométrie de résolution inférieure, 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 ne projetant pas d'ombre pour les objets qui se déplacent et invalident l'occupation.
Perform/Scene/computeLightingPerform/ShadowMapSystemMet à jour les cartes d'ombre. Non 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 des instances moins importantes. Voir Améliorer les performances.
Perform/Scene/Glow, ColorCorrection, MSAA, SSAO, and SSAOApplyRendu de post-traitement.Réduisez le nombre d'effets de post-traitement. En général, cela n'est pas significatif.
Perform/Scene/UIRendu de l'interface utilisateur. Dans Id_Screen, il y a une étiquette avec le nombre de lots, de matériaux et de 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 utilisation accrue de la mémoire.
Perform/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 inférieure.Réduisez l'utilisation et la densité des parties.
Scene/Id_Transparent, RenderView/Id_TransparentParties dans la scène avec une transparence globale entre 0.01 et 1.Réduisez l'utilisation de la transparence partielle.
Scene/Id_Decals, RenderView/Id_DecalsDécalcomanies dans la scène.Réduisez l'utilisation de décalcomanies sur des maillages complexes.
Scene/ShadowsRecalcul des ombres dans la scène, généralement effectué sur des scènes dynamiques et un gameplay typique. Les parties, quelle que soit leur transparence, projettent des ombres en supposant qu'elles contiennent des décalcomanies. Non 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 entièrement transparentes qui n'ont pas de décalcomanies ou qui n'ont pas besoin d'ombres de décalcomanies devraient avoir BasePart.CastShadow désactivé. Voir Améliorer les performances.
Perform/PresentTransmet au thread GPU pour exécuter les 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.
Perform/Present/waitUntilCompletedAttend que le GPU termine le rendu de l'image précédente.Si cela se produit généralement beaucoup, alors le nombre de choses rendues est trop élevé. Le gestionnaire de fréquence d'images aide à équilibrer cela, mais si cela reste élevé, essayez de suivre les conseils de performance des étiquettes Scene individuelles.
LoadImageTraite les images dans un format que le moteur peut utiliser.Réduisez l'utilisation d'images volumineuses.

Scripts

ÉtiquetteDescriptionConseils de performance
Render/PreRender/fireBindToRenderSteppedCallbacksExécution de fonctions liées à l'étape de rendu via RunService:BindToRenderStep().Assurez-vous que les fonctions connectées à cet événement effectuent le moins de travail possible.
Render/PreRender/RunService.RenderSteppedExécute des fonctions connectées à l'événement RunService.RenderStepped.Assurez-vous que les fonctions connectées à cet événement effectuent le moins de travail possible.
WaitingHybridScriptJobReprend les scripts en attente utilisant Instance:WaitForChild() ou Globals.Roblox.wait(). Généralement effectué 30 fois par seconde. Cette étape a un budget de temps d'exécution pour exécuter les 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 limité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.
GCCycle de collecte des ordures de Luau.Regroupez les tables et autres objets collectables ou essayez de réduire la création de tables temporaires.
Heartbeat/RunService.HeartbeatExécute des 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 des calculs coûteux ou de répartir le calcul sur plusieurs images.

Simulation

ÉtiquetteDescriptionConseils de performance
Distributed Physics OwnershipDétermine si le serveur ou un client a l'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 une interaction commune.
Simulation/assembleMet à jour un arbre d'objets connectés (assemblages) utilisés par le moteur physique.Réduisez le nombre de joints créés ou détruits.
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 interagissantes qui peuvent être simulées indépendamment.Évitez de définir la 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 en même temps, 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 les é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 limitées (stepWorldThrottled) et seules les "assemblages en temps réel" tels que Humanoids sont simulés.Dépend de l'endroit où le temps est dépensé en fonction des trois phases suivantes : stepContacts : tests de géométrie de détection de collision de phase étroite. Solver step : intègre le temps et résout les collisions et autres contraintes updateBroadphase : met à jour les positions des assemblages dans le système de détection de collision et trouve éventuellement des paires de phase étroite en collision.
notifyMovingAssembliesAide à suivre combien de temps les primitives ont été en sommeil.
Simulation/physicsSteppedTotal/physicsStepped/interpolateNetworkedAssembliesInterpolates les assemblages non contrôlés par le joueur actuel.Définissez le propriétaire réseau des parties sur le joueur actuel pour réduire cela ; bien que cela entraîne généralement plus de travail physique à faire ailleurs.
Simulation/handleFallenPartsSupprime 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 des 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 mouvement 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 de faire un minimum de traitement pour l'entrée, et des calculs plus importants devraient être délégués à un autre thread qui se produit plus tard.
Render/PreRender/TweenServiceMet à jour les objets étant animés à l'aide de TweenService et appelle les rappels de complétion, tels que ceux fournis à GuiObject:TweenSize() ou GuiObject:TweenPosition().Réduisez le nombre d'objets étant animés à l'aide de TweenService et assurez-vous que les rappels effectuent 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 étant animés à l'aide de TweenService et assurez-vous que les rappels effectuent le moins de travail possible.
Render/PreRender/UpdateUILayoutsMet à jour la position et la taille des éléments de l'interface utilisateur sur tous les LayerCollectors activés.Voir les étiquettes UpdateUILayouts ci-dessous.
Render/PreRender/UpdateUILayouts/Rebuild Z-order listReconstruit la liste interne de l'ordre Z des éléments de l'interface utilisateur (à ne pas confondre avec GuiObject.ZIndex) dans un LayerCollector lors du premier rendu ou lorsqu'un nouvel élément est ajouté, supprimé ou a changé son GuiObject.ZIndex.Réduisez le nombre d'éléments d'interface utilisateur dans LayerCollectors avant le premier rendu et évitez de changer fréquemment le parent et le GuiObject.ZIndex des éléments d'interface utilisateur à l'intérieur. Plus un LayerCollector a d'éléments, moins il fonctionne bien.
Render/PreRender/UpdateUILayouts/Layout

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

Réduisez le nombre d'éléments d'interface utilisateur étant 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.