Référence de balise

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

Ce qui suit est une liste de balises communes dans le MicroProfiler, regroupées par catégorie.Comprendre ces balises peut vous aider à identifier le code problématique dans votre expérience.Les tables contiennent une étiquette de balise, des descriptions et des conseils sur les performances pour améliorer les performances et optimiser votre expérience.

Sommeil

Lorsque les threads ne font pas activement exécuter des 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.

IA/navigation

ÉtiquetteAvertissementConseils de performance
rasteriser la tuileLes tuiles de navigation mises à jour nécessaires pour une demande de recherche de chemin, généralement suivies par computePath qui nécessite que ces tuiles soient à jour.Suit le travail de navigation/prétraitement sur le filprincipal.Réduisez le nombre d'invalidations de tuiles de recherche de chemin, car cela provoque le besoin de récomputer ces chemins. Cela est causé par le déplacement de parties non navigables.
computePath

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

Réduisez le nombre et les limites du monde des appels ComputePath.Essayez de réutiliser les chemins pour plusieurs agents s'ils sont attendus pour commencer/se terminer à partir d'emplacements similaires environ.
prétraitement/getPrimitivesOverlappingIl collecte la géométrie du monde pour chaque tuile de recherche de chemin et planifie les tâches de rasterisation à exécuter par le filde recherche de chemin.Réduire le nombre de parties.

Animation

ÉtiquetteAvertissementConseils de performance
Simulation/gameSteppedTraitement des objets spécifiques au jeu tels que Humanoids , Animations et les rappels de battement de cœur
Simulation/jeu en plusieurs étapes/StepLegacyHumanoid modifications d'état et movement.Called pasHumanoid sur le serveur maintenant (version parallèle)Désactivez ou réduisez Humanoid les états sur les PNJ si vous les avez.L'état échelle est le plus important à désactiver.Réduire les rappels à des modifications d'état telles que Humanoid.Died ou Humanoid.Running
Simulation/jeuStepped/stepAnimationAnimators avancera dans les animations en cours de lecture.Réduisez la quantité de Animators ou de jointures animées pour réduire la charge de travail de cette étape.Réduire le nombre d'appels de rappel à des é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 la quantité ou la charge de travail des fonctions connectées à cet événement.Envisagez de retarder ou de remplacer des calculs coûteux.Considérez la répartition de la comptabilité sur plusieurs cadres.

Son

ÉtiquetteAvertissementConseils de performance
SonTraitement audio : lieux, effets, volumes, etc.
DéveloppeurTag_SoundsSons en mémoire : généralement des sons courts qui sont assez petits pour entrer en mémoire. Habituellement des effets sonores uniques, pas de la musique de longue forme.Utilisez moins de sons courts.
Tag développeur_StreamingSoundsstream/StreamingSounds : ce sont des sons plus grands qui sont diffusés à partir du disque. Généralement des fichiers musicaux de plus longue forme.Utilisez moins de longs sons.

Réseautage

ÉtiquetteAvertissementConseils de performance
Réception de paquet netReç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.
Replicateur/ProcessPacketsTraite le contenu des paquets réseau, tels que les mouvements, les invocations d'événements et les changements de propriété.Réduisez le nombre ou la taille des objets en cours de réplication, ou faites-le en étapes incrementielles.Peut augmenter si la taille de la carte augmente, car les plus grandes cartes ont tendance à avoir plus d'activité globale.
Allouer la bande passante et exécuter les expéditeurs/physiciens d'envoi et les expéditeurs de touchesEnvoie des données sur l'activité dans l'expérience.Réduisez la quantité d'objets mobiles et/ou de touches. Voir les sections suivantes.
Allouer la bande passante et exécuter les expéditeurs/streamjob de diffusionEnvoie des régions correspondantes à des clients spécifiques dans la fonctionalité« Diffusion en continu ».Réduire le rayon de streaming minimum et cible.
Allouer la bande passante et exécuter les expéditeurs/diffuseurs de donnéesEnvoie des modifications de propriété, des événements à distance, des changements d'état humanoïde, des démarrages/arrêts d'animation.Réduire le nombre de modifications répliquées dans le modèlisationde données
Groupe d'envoi de réplicateurEnvoie des données de terrain aux clients.Réduire la quantité ou la taille des modifications du terrain.
Méga travail de complétude du modèleServeur uniquement : la complétude est un concept interne. Lorsque les modèles sont entièrement envoyés, des événements de complétude des modèles sont envoyés.Ajoutez ou supprimez moins d'instances.
Paquet de désérialisationTraitement de paquet réseau de bas niveau. Prépare pour les processus de paquet de réplicateur.Envoyez moins de mises à jour.

Rendement

ÉtiquetteAvertissementNotes de performances
PréparerLes informations sont collectées depuis le thread principal et mettent à jour diverses structures de données utilisées pour le rendu.Cela bloque les threads de simulation, il doit donc être le plus petit possible.Voir Préparer les étiquettes ci-dessous.
Préparer/Pass3dAdornRendu de divers accessoires d'objets, tels que des étiquettes de texte au-dessus des objets. Cette étape peut inclure un lancer de rayons pour déterminer si de tels objets sont visibles.Réduisez le nombre d'objets visibles ornés, tels que BillboardGuis , Humanoid étiquettes de nom/santé, etc.
Préparer/Passe2dPrépare le rendu de l'interface utilisateur 2D (à la fois le joueur et l'interface utilisateur Roblox).Réduire le montant ou la complexité des éléments d'interface utilisateur.
Préparer/mettre à jourPréparer/mettre à jourParties invalidesMise à jour des parties qui avaient une propriété modifiée ou ajoutée.Réduisez le nombre de modifications de propriétés sur le monde. Si un script met à jour un grand ensemble de propriétés d'objets, le divisez sur plusieurs cadres.
Préparer/mettre à jourPréparer/mettre à jourInvalidatedFastClustersPrépare la géométrie, généralement des « groupes rapides » utilisés pour rendre Humanoids . Les sous-marqueurs spécifient le nombre de parties, de vertex et la taille des vertex.Réduire l'utilisation de 'Humanoids' sous les objets qui ne sont pas Humanoids .Cela ne doit pas être utilisé pour réduire les appels de dessin car les groupes rapides consomment beaucoup plus de mémoire.
Préparer/mettre à jourPréparer/mettre à jourDynamicPartsMise à jour des positions pour Humanoids , véhicules et autres instances mobiles pour le rendu.Réduisez le nombre ou la complexité du déplacement de Humanoids ou de véhicules visibles.Combiner des parties du même matériau et de la même couleur dans une union ou dans une MeshPart peut aider à ce sujet.
Préparer/mettre à jourPréparer/mettre à jourLes clusters instanciésPrépare une géométrie statique qui utilise un rendu instantané (parties et parties de maillage). Les étiquettes « Clusters » et « Instances » indiquent le nombre mis à jour.Utilisez moins de variation globale de maillage et de matériau. Vous pouvez également créer des groupes en utilisant des objets ayant des apparences similaires - taille, couleur, matériau.
ExécuterLorsque des commandes de rendu réelles sont créées et émises.Voir étiquettes de performance ci-dessous.
Exécuter/remplir les verticaux GuiRendu de l'interface utilisateur. Remplit les tampons avec des vertex d'interface pour les accessoires. L'étiquette « Compter de l'interface » indique le nombre d'éléments dans la liste du rendu.Si le coût est élevé, réduisez la quantité d'interface utilisateur mise à jour en la désactivant lorsqu'elle n'est pas utilisée en veillant à ce qu'elle soit correctement cachée.
Exécuter/Scène/queryFrustumOrderedApplique la suppression du frustum afin que les objets non visibles ne soient pas rendus.S'il y a un coût élevé, cela signifie qu'il y a beaucoup d'éléments.Peut-être utiliser des mailles plus grandes où une seule maillage a plus de détails par rapport à de nombreuses pièces individuelles petites.
Exécuter/Scène/ computeLightingPerformCalcul de la lumière près de la caméra.Manipuler le nombre de sources lumineuses ou déplacer la caméra moins pour réduire le temps nécessaire pour recalculer l'éclairage.
Exécuter/Scène/ComputeLightingPerform/LightGridCPUMise à jour de l'éclairage voxel, qui est utilisé dans les modes Voxel et ShadowMap et aux niveaux de qualité inférieurs à 4 dans le mode Future.Si la mise à jour de l'occupation des segments 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 sous-marqueurs prennent trop de temps, envisagez de réduire le nombre de lumières et d'utiliser une géométrie de lancer non ombrage pour les objets qui se déplacent et annulent l'occupation.
Exécuter/Scène/computeLightingExécuter/Carte des ombresMise à jour des cartes d'ombrage. Non effectuée aux niveaux de qualité inférieurs à 4 ou lorsque Lighting.Technology est réglé sur Voxel.Si l'éclairage est réglé sur Future , réduisez-le à ShadowMap ou réduisez le nombre de lampes.Vous pouvez également utiliser Light.Shadows et BasePart.CastShadows pour désactiver le lancer d'ombres sur des instances moins importantes.Voir améliorer les performances .
Exécuter/Scène/Briller, Correction de la couleur, MSAA, SSAO, et SSAOAppliquerRendu post-traitement.Réduire le nombre d'effets de post-traitement. Habituellement, cela n'est pas significatif.
Exécuter/Scène/IURendu 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 de l'augmentation de l'utilisation de la mémoire.
Exécuter/Scène/Vue d'actualisation/updateParticles, updateParticleBoundingsMise à 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_OpaquePièces dans la scène avec une valeur de transparence de 0.
Identifiant transparentParties dans la scène avec une valeur de transparence autre que 0.Réduire l'utilisation de transparence partielle (valeurs autres que 0 et 1).
Id_DecalAutocollants dans la scène.
Exécuter/PrésenterAttend que le GPU finisse de rendre le cadre précédent ; émet effectivement des commandes de rendu au GPU ; gère les ressources graphiques de bas niveau.Réduisez la complexité de la scène en général. Si cette étape prend du temps, vous pouvez être limité par le GPU.
Exécuter/Présenter/Attendre jusqu'à ce que terminéAttend que le GPU finisse de rendre le cadre précédent.Si cela se produit généralement beaucoup, alors la quantité de choses rendues est trop élevée.FRM aide à équilibrer cela, mais si cela reste élevé, essayez d'utiliser moins de détails.

Scripteurs

ÉtiquetteAvertissementConseils de performance
Rendre/Prérendre/fireBindToRenderSteppedCallbacksExécution de fonctions liées à la rendu d'étape via RunService:BindToRenderStep() .Assurez-vous que les fonctions dans les scripts utilisant RunService:BindToRenderStep() font le moins de travail possible.
Rendre/Prérendre/ExécuterService.RenderSteppedExécute des fonctions connectées à l'événement RunService.RenderStepped.Semblable à BindToRenderStep, assurez-vous que les fonctions utilisant cet événement font le moins de travail possible.
Attente de l'emploi de script hybrideReprend les scripts en attente en utilisant les 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 de scripts avec une longue exécution avant de céder, cette étape peut prendre plusieurs
LuaGCCycle de collecte des déchets Luau. Le label fournit des estimations de mémoire sur l'allocation totale et la quantité qui a été déallocée.Tables Lua de piscine et autres objets de collection ou essayer de réduire la création de tables temporaires ou de chaînes
Cœur de battement/RunService.HeartbeatExécute des fonctions connectées au Class.RunService.Heartbeat``event.Talk à la simulation et aux contacts de scripts. La description actuelle est suffisamment générique pour ne pas être incorrecteRéduisez la quantité ou la charge de travail des fonctions connectées à RunService.Heartbeat.

Simération

ÉtiquetteAvertissementConseils de performance
Propriété physique distribuéeDétermine si le serveur ou un client a l'autorité sur certaines instances telles que des parties.Propriété de la physique distribuée.
Simulation/assemblageMise à jour d'un arbre de objets connectés (assemblages) utilisés par le moteur de physique.Réduisez le nombre de jointures créées ou détruites.
Simulation/physiqueSteppedTotal/physiqueSteppedExécute la simulation physique.Réduire le nombre et la complexité des corps physiquement simulés.
Simulation/physiqueSteppedTotal/physiqueStepped/Filtre spatial/filtre d'étapeMise à jour des îles de simulation, organisation des parties selon la propriété du réseau, simulation locale.Les îles sont des groupes non interactifs de parties qui peuvent être simulés de manière indépendante.É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/physiqueSteppedTotal/physiqueStepped/mondeStep/stepContactsMise à jour des contacts entre les objets.Réduisez le nombre de corps qui se heurtent en même temps ou utilisez des boîtes de collision plus simples. Les cubes sont meilleurs que les mailles 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 ne peut pas simuler tout en temps réel, certains pas peuvent être ralentis (stepWorldThrottled) et seules les « assemblages en temps réel » tels que Humanoids sont simulés.Dépend de l'endroit où le temps va en fonction des trois phases suivantes : stepContacts : tests de géométrie de détection de collision étroite.Étape de résolveur : 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 collisions et trouver éventuellement des paires de phase étroite qui se heurtent.
Notifier les assemblages mobilesAide à suivre combien de temps les primitifs ont dormi.
Simulation/physiqueSteppedTotal/physiqueStepped/interpolateNetworkedAssembliesInterpolate les assemblages non contrôlés par ce pair réseau.Définissez le propriétaire du réseau des parties à cet pair pour réduire cela, bien que cela entraîne généralement plus de travail de physique à faire ailleurs.
Simulation/handleFallenPartsSupprime les parties qui sont tombées en dessous de Workspace/FallenPartsDestroyHeight.Réduisez la hauteur de destruction ou réduisez la quantité de pièces qui tombent à la hauteur de destruction.
Fréquence cardiaque/fréquence cardiaqueInterne/espace de travail sur la fréquence cardiaque/mise à jour visuellement endormieDeuxième partie de NotifyMovingAssemblies.
Cœur de battement/RunService.HeartbeatExécute des fonctions connectées au Class.RunService.Heartbeat``event.Talk à la simulation et aux contacts de scripts. La description actuelle est suffisamment générique pour ne pas être incorrecteRéduisez la quantité ou la charge de travail des fonctions connectées à RunService.Heartbeat.
worldStep/StepContactsAide la simulation de physique à passer plusieurs contacts à la fois.Réduisez le nombre d'objets en conflit.
Résoudre le lotAide la simulation physique à résoudre des lots de mouvements d'objets.
Interpolation de mécanismeAide avec InterpolateNetworkAssemblies.

UI

ÉtiquetteAvertissementConseils de performance
Rendre/Prérendre/Mettre à jour l'entréeMise à jour et déclenchement de tous les événements d'entrée liés à l'utilisateur si l'utilisateur a effectué une entrée depuis le dernier cadre.C'est quand les événements liés à l'entrée de l'utilisateur lancerdéclencheront.Il est important d'essayer de ne pas faire trop de travail directement lorsque vous obtenez l'entrée.Considérez le fait de faire un minimum de traitement pour l'entrée, et les calculs plus importants devraient être reportés à un autre thread qui se produit plus tard.
Rendu/Prérendu/TweenServiceMise à jour des objets étant transférés en utilisant TweenService et appelle des appels de rappel de fin, tels que ceux utilisés fournis à TweenSize ou TweenPosition .Réduisez le nombre d'objets transférés en utilisant le service de transition et assurez-vous que les rappels font le moins de travail possible.
Rendre/Prérendre/Mettre à jour les plans d'interface utilisateurMet à jour la position et la taille des éléments d'interface utilisateur.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.
Cœur de battement/TweenServiceSur le serveur, les objets mis à jour sont transférés avec le service Tween. Sur le client, cela se fait plutôt dans une étape de prérendu.Réduisez le nombre d'objets traversés par TweenService .