Ce qui suit est une liste de tags communs dans le MicroProfiler, groupés par catégorie. Comprendre ces tags peut vous aider à identifier le code problématique dans votre expérience. Les tables contiennent des étiquettes, des descriptions et des conseils de performance pour améliorer les performances et optimiser votre expérience.
IA/ナビゲーション
Étiquette | Description | Conseils de performance |
---|---|---|
rasterizeTuile | Mise à jour des carreaux de navigation nécessaires pour une demande de recherche de chemin, habituellement suivie par "Path" qui nécessite que ces carreaux soient à jour. Suivre NavigationJob/pre处理 sur le fil principal. | Réduisez le nombre de validations de carreaux de chemin, car cela cause ces chemins à nécessiter une recombinaison. Cela est causé par des parties non navigables se déplaçant. |
calculez le chemin | Calcul des chemins, généralement après rasterizeTile ». | Réduisez le nombre et l'extensivité des appels ComputePath. Essayez de réutiliser les chemins pour plusieurs agents s'ils sont attendus à partir d'endroits similaires. |
pr处理/getPrimitivesOverlapping | Collecte la géométrie du monde pour chaque tuile de chemin et planifie les tâches de rasterisation à exécuter par le filon de chemin. | Réduisez le nombre de pièces. |
Animation
Étiquette | Description | Conseils de performance |
---|---|---|
Simulation/jeu | traitement des objets spécifiques au jeu tels que Humanoids , Animations et les rappels de rythme cardiaque | |
Simulation/jeu/StepLegacy | Humanoid état de changement d'état et movement.Called stepHumanoid sur le serveur maintenant (version parallèle) | Désactivez ou réduisez les états Humanoid sur les PNJ, si vous les avez. L'état de l'échelle est le plus important pour les désactiver. Réduisez les appels à des états de changement d'état tels que Humanoid.Died ou Humanoid.Running |
Simulation/gameStepped/stepAnimation | Animators avance en jouant actuellement des animations. | Réduisez le nombre de Animators ou de joints animés pour réduire le travail de cette étape. Réduisez le nombre de rappels à des événements d'animation tels que AnimationTrack.KeyframeReached ou AnimationTrack.Ended. |
Simulation/gameStepped/RunService | Exécute les fonctions connectées à l'événement RunService.Stepped. | Réduisez la quantité ou le travail de fonctions connectées à cet événement. Considérez retarder ou remplacer des calculs coûteux. Considérez la réplication des calculs sur plusieurs cadres. |
Audio
Étiquette | Description | Conseils de performance |
---|---|---|
Son | Traitement de l'audio : emplacements, effets, volumes, etc. | |
Développer une balise de son | Sons dans la mémoire : généralement des sons courts qui sont assez courts pour aller dans la mémoire. Habituellement des effets sonores uniques, pas de musique de longue durée. | Utilisez moins de sons courts. |
DévelopperTag_StreamingSounds | stream/StreamingSounds : ce sont de plus gros sons qui sont diffusés à partir du disque. Généralement des fichiers de musique de plus longue forme. | Utilisez moins de longs sons. |
Réseaux
Étiquette | Description | Conseils de performance |
---|---|---|
Réception de paquet | Reçoit les 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/ProcessPackets | Traite le contenu des paquets réseau, tels que les mouvements, les invocations d'événements et les modifications de propriété. | Réduisez le nombre ou la taille des objets qui sont répliqués, ou faites cela dans des étapes incrementales. Peut augmenter si la taille des cartes augmente, car de plus grandes cartes tendent à avoir plus d'activité globale. |
Allouer de la bande passante et exécuter Senders/Dispatch Physics Senders et TouchSenders | Envoyez des données sur l'activité dans l'expérience. | Réduisez le nombre d'objets et/ou de touches en mouvement. Voir les sections suivantes. |
Allouer la bande passante et exécuter les envoyeurs/dispatch stream job | Envoye les régions correspondantes à des clients spécifiques dans la fonctionalité« Streaming ». | Réduisez le minimum et le rayon de visionnement cible. |
Allouer de la bande passante et exécuter des senders/dispatcheurs de données | Envoyez les modifications de propriété, les événements à distance, les modifications d'état humanoïdes, les démarrages d'animation. | Réduisez le nombre de modifications répliquées au modèlisationde données |
Envoyeur de réplicateur | Envoyez les données de terrain aux clients. | Réduisez la quantité ou la taille des modifications de terrain. |
Modèle de fin de travail Mega | Serveur uniquement : la complétude est un concept interne. Lorsque les modèles sont complètement envoyés, les événements de complétude du modèle sont envoyés. | Ajouter ou supprimer moins d'instances. |
Désoser le paquet | Paquet de réseau bas niveau. Préparez-vous pour les paquets de processus de réplicateur. | Envoyez moins de mises à jour. |
Rendu
Étiquette | Description | Notes de performance |
---|---|---|
Préparer | Les informations sont collectées depuis le fil principal et mises à jour dans diverses structures de données utilisées pour le rendu. Cela bloque les threads de simulation, il devrait donc être aussi petit que possible. | Voir les étiquettes Préparer ci-dessous. |
Préparer/Pass3dAdorn | Rendu de nombreuses décorations d'objets, telles que les étiquettes de texte au-dessus des objets. Ce processus peut inclure le raycasting pour déterminer si de tels objets sont visibles. | Réduisez le nombre d'objets décoratifs visibles, tels que BillboardGuis , Humanoid nom/étiquette de santé, etc. |
Préparer/Pass2d | Prépare la render 2D de l'interface (tanto l'interface du joueur que l'interface de Roblox). | Réduisez le nombre ou la complexité des éléments de l'interface utilisateur. |
Préparez/Mise à jourPréparez/mise à jourInvalidParts | Mise à jour des parties qui avaient des propriétés modifiées ou ajoutées. | Réduisez le nombre de modifications de propriétés dans le monde. Si un script met à jour un grand ensemble de propriétés d'objet, divisez-le en plusieurs cadres. |
Préparer/Mettre à jourPréparer/mettre à jourInvalidatedFastClusters | Prépare la géométrie, généralement «FastClusters» utilisé pour rendre Humanoids . Les sous-marqueurs spécifient le nombre de parties, les vérités et la taille des vérités. | Réduisez l'utilisation de « Humanoids » sous les objets qui ne sont pas Humanoids . Ce ne devrait pas être utilisé pour raccourcir les appels de dessin car FastClusters consomme beaucoup plus de mémoire. |
Préparer/Mettre à jourPréparer/mettre à jourDynamicParts | Mise à jour des positions pour Humanoids , véhicules et autres instances en mouvement pour le rendu. | Réduisez le nombre ou la complexité des mouvements Humanoids ou véhicules visibles. En combinant des parties du même matériau et couleur dans une union ou MeshPart, vous pouvez aider avec cela. |
Préparer/Mettre à jourPréparer/mettre à jourInstancedClusters | Prépare la géométrie statique qui utilise le rendu instantané (parties et parties de maillage). Les étiquettes « Clusters » et « Instances » indiquent le nombre mis à jour. | Utilisez moins de variantes de maillage et de matériau. Vous pouvez également créer des groupes en utilisant des objets qui ont des apparences similaires - taille, couleur, matériau. |
Exécuter | Lorsque les commandes de rendu actuelles sont créées et émises. | Voir les étiquettes Perform ci-dessous. |
Exécuter/remplir Gui Vertices | Affichage de l'interface utilisateur. Remplit les tamis avec des vertus UI pour les accessoires. Le label « Gui count » indique le nombre d'éléments dans la liste de rendu. | Si le coût est élevé, réduisez le nombre d'API qui est mis à jour en le désactivant lorsqu'il n'est pas utilisé en veillant à ce qu'il soit correctement caché. |
Perform/Scene/queryFrustumOrdered | Applique la rétention frustum pour que les objets non visibles ne soient pas rendus. | Si il y a un coût élevé, il y a beaucoup d'éléments. Peut-être utiliser des maillages plus grands où un seul maillage a plus de détails au lieu de nombreuses pièces individuelles plus petites. |
Perform/Événement/計算光源Perform | Calcul de l'éclairage près de la caméra. | Manipulez le nombre de sources de lumière ou déplacez la caméra moins pour réduire le temps pris pour recharger l'éclairage. |
Perform/É scene/計算光源/Perform/LightGridCPU | Mise à jour l'éclairage voxel, qui est utilisé dans Voxel et ShadowMap modes et à des niveaux de qualité inférieurs à 4 dans le mode Future. | Si la mise à jour de l'emplacement du bloc prend trop de temps, considérez l'utilisation de géométrie de résolution inférieure, réduisant le nombre de pièces ou l'ancrage des pièces. Si les autres sous-marqueurs prennent trop de temps, considérez la réduction du nombre de lumières et l'utilisation de la géométrie de l'ombrage pour les objets qui se déplacent et valident l'emplacement. |
Perform/É scene/計算光源Perform/ShadowMapSystem | Mises à jour des cartes d'ombre. Ne sont pas effectuées à des niveaux de qualité inférieurs à 4 ou lorsque Lighting.Technology est défini sur Voxel. | Si l'éclairage est réglé sur Future, abais-le à ShadowMap ou réduis le nombre de lumières. Vous pouvez également utiliser Light.Shadows et 1> Class.BasePart.CastShadows1> pour désactiver le cast-ombre sur les instances moins importantes. |
Perform/Scene/Glow, ColorCorrection, MSAA, SSAO et SSAOApply | Post-traitement rendu. | Réduisez le nombre d'effets post-traitement. Habituellement, ce n'est pas significatif. |
Perform/Événement/UI | Affichage 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 visibles. L'utilisation de CanvasGroups peut aider au détriment de l'utilisation de la mémoire augmentée. |
Perform/Scene/UpdateView/updateParticles, updateParticleBindings | Mise à jour de la position et des limites des particules. | Réduisez le nombre de ParticleEmitters, les taux d'émission, les durées de vie, etc. Limitez le mouvement des émetteurs. |
Id_Opaque | Parties dans la scène avec une valeur de transparence de 0. | |
Id_Transparent | Parties dans la scène avec une valeur de transparence autre que 0. | Réduisez l'utilisation de la transparence partielle (valeurs autres que 0 et 1). |
Id_Decal | Décalques dans la scène. | |
Exécuter/Présenter | Attend que le GPU ait fini de rendre le cadre précédent ; en fait, il émet des commandes de rendu au GPU ; traite les ressources graphiques de bas niveau. | 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. |
Exécuter/présenter/attendreJusqu'à ce que terminé | Attend que le GPS ait fini de rendre le cadre précédent. | Si ceci se produit en général beaucoup, alors le nombre de choses rendues est trop élevé. FRM aide à équilibrer ceci, mais si cela reste élevé, essayez d'utiliser moins de détails. |
Scripts
Étiquette | Description | Conseils de performance |
---|---|---|
Render/PreRender/fireBindToRenderSteppedCallbacks | Fonctions d'exécution liées à la restitution d'étape via RunService:BindToRenderStep() . | Assurez-vous que les fonctions dans les scripts utilisant RunService:BindToRenderStep() ne font que du travail aussi peu que possible. |
Render/PreRender/RunService.RenderStepped | Exécute les fonctions connectées à l'événement RunService.RenderStepped. | Semblable à BindToRenderStep, assurez-vous que les fonctions utilisant cet événement effectuent le moins de travail possible. |
Poste de travail hybride attendu | Résume les scripts en attente en utilisant des cadres d'attente. | Cette étape a un budget de temps d'exécution pour exécuter des scripts d'attente, donc si vous avez trop de scripts d'attente ou des scripts avec une longue durée d'exécution avant la fermeture, cette étape peut prendre plusieurs |
LuaGC | Cycle de collecte de déchets Lua. La balise fournit des estimations de mémoire sur la répartition totale et combien a été délocalisé. | Tables de lua de piscine et autres objets de collecte ou essayez de réduire la création de tables temporaires ou de chaînes |
Heartbeat/RunService.Heartbeat | Exécute des fonctions connectées au Class.RunService.Heartbeat``event.Talk à la simulation et aux scripts. La description actuelle est générique pour ne pas être err误use | Réduisez la quantité ou le travail de fonctions connectées à RunService.Heartbeat. |
Simulation
Étiquette | Description | Conseils de performance |
---|---|---|
Possédé physique distribué | Détermine si le serveur ou un client a l'autorité sur certaines instances telles que les pièces. | Possédé physique distribué. |
Simulation/assemblage | Mise à jour d'un arbre d'objets connectés (assemblages) utilisés par le moteur de physique. | Réduisez le nombre de jointures créées ou détruites. |
Simulation/physiqueSteppedTotal/physiqueStepped | Exécute la simulation de physique. | Réduisez le nombre et la complexité des corps physiquement simulés. |
Simulation/physiqueSteppedTotal/physiqueStepped/SpacialFilter/filterStep | Mise à jour des îles de simulation, en organisant les parties selon la propriété du réseau, la simulation locale. Les îles sont des groupes de parties non interactives qui peuvent être simulés indépendamment. | Évitez de configurer la propriété du réseau fréquemment. Gardez les groupes de pièces assez loin l'un de l'autre pour qu'ils puissent être simulés séparément. |
Simulation/physiqueSteppedTotal/physiqueStepped/worldStep/stepContacts | Mise à jour des contacts entre les objets. | Réduisez le nombre de corps qui entrent en collision à la fois, ou utilisez des boîtes de collision plus simples. Les cubes sont meilleurs que les maillages complexes. |
Simulation/physiqueSteppedTotal/physiqueStepped/worldStep/stepWorld OU stepWorldThrottled | Résoudre 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 ralenties (stepWorldThrottled) et ne sont simulées que les "assemblages temps réel" tels que Humanoids. | Dépend de l'endroit où le temps va en fonction des trois phases suivantes : stepContacts : détection de collision de phase étroite. Solver step : intégrer le temps et résoudre les collisions et autres contraintes updateBroadprice : mise à jour des positions des assemblages dans le système de détection de collision et trouver peut-être des paires de phases étroites. |
NotifyMovingAssemblies | Aide à suivre combien de temps les primitives ont dormi. | |
Simulation/physiqueSteppedTotal/physiqueStepped/interpolateNetworkedAssemblies | Interpolat les assemblées contrôlées par ce réseau. | Définissez le propriétaire du réseau des parties sur ce pair pour réduire cela ; bien que cela soit généralement causé par plus de travail de physique à être effectué ailleurs. |
Simulation/HandleFallenParts | Supprime les parties qui sont tombées sous Workspace/FallenPartsDestroyHeight. | Réduisez la hauteur de destruction ou réduisez le nombre de pièces qui tombent à la hauteur de destruction. |
Heartbeat/心beatInternal/workspaceOnHeartbeat/updateVisuellement endormi | Deuxième partie de NotifyMovingAssemblies. | |
Heartbeat/RunService.Heartbeat | Exécute des fonctions connectées au Class.RunService.Heartbeat``event.Talk à la simulation et aux scripts. La description actuelle est générique pour ne pas être err误use | Réduisez la quantité ou le travail de fonctions connectées à RunService.Heartbeat. |
worldStep/ContactStep | Aide à la simulation de physique à faire plusieurs contacts à la fois. | Réduisez le nombre d'objets qui entrent en collision. |
Résoudre le bataille | Aide à la simulation de physique à résoudre des lots de mouvement d'objets. | |
Interpolation de mécanisme | Aide avec InterpolateNetworkAssemblies. |
IU
Étiquette | Description | Conseils de performance |
---|---|---|
Render/PréRender/Mise à jour de l'entrée | Mise à jour et déclenche tous les événements liés aux entrées de l'utilisateur si l'utilisateur a effectué une entrée depuis le dernier cadre. | C'est là que se déclenchent les événements liés aux lancerde l'utilisateur. Il est important de essayer de ne pas faire trop de travail directement à mesure que vous obtenez l'entrée. Considérez de faire une quantité minimale de travail pour l'entrée, et des calculs plus grands devraient être poussés dans un autre fil qui se produit plus tard. |
Render/PreRender/TweenService | Mise à jour les objets en train d'être tweened en utilisant TweenService et des rappels de fin d'appel, tels que ceux fournis à TweenSize ou TweenPosition. | Réduisez le nombre d'objets à dessiner en utilisant TweenService et assurez-vous que les appels ne font que du travail si possible. |
Render/PreRender/UpdateUILayouts | Mise à jour de la position et de la taille des éléments UI. | Réduisez le nombre d'éléments d'interface utilisateur redimensionnés ou ré positionnés dynamiquement, tels que ceux gérés par UILayout. |
Heartbeat/TweenService | Sur le serveur, met à jour les objets avec TweenService. Sur le client, ceci est fait dans une étape PréRender au lieu de cela. | Réduisez le nombre d'objets dessinés par TweenService. |