Chaque composant de construction et de script que vous ajoutez à votre expérience consomme de la mémoire.Lorsque l'utilisation de la mémoire atteint les limites du moteur, l'appareil ou le serveur de l'utilisateur peut s'écraser, vous devez donc surveiller activement l'utilisation de la mémoire et prendre des mesures d'optimisation. La console de développeur fournit deux outils pour surveiller l'utilisation de la mémoire, y compris :
Mémoire — Afficher la consommation de mémoire en temps réel par catégories d'utilisation, y compris l'utilisation de mémoire par vos composants personnalisés et les processus internes du moteur.
Pile Luau — Créer des captures d'écran sur la mémoire de pile, qui fait référence à l'allocation de mémoire à vos scripts.Cet outil fournit plusieurs vues d'allocation de mémoire pour vous aider à identifier l'allocation de mémoire actuelle et les problèmes sous différents angles, tels que les types d'objets et les Classesd'engine.Il vous permet également de créer plusieurs captures d'écran pour comparer les différences d'utilisation de la mémoire au fil du temps.
Vous pouvez ouvrir la console pendant une session de test ou d'expérience en direct en utilisant l'une des façons suivantes :
- Appuyez sur F9.
- Tapez /console dans le chat.
- Utilisez le menu dans l'expérience :
Ouvrez le menu en expérience Roblox .
Sélectionnez l'onglet Paramètres .
Faites défiler vers le bas jusqu'à la console du développeur et cliquez sur Ouvrir .
Mémoire
L'outil mémoire catégorise et affiche l'utilisation de la mémoire en temps réel.Il affiche l'utilisation de la mémoire en MB de chaque catégorie et génère un tableau sur le changement d'utilisation au fil du temps.
Pour afficher l'allocation de mémoire :
Ouvrez la console de développeur .
Développez la liste déroulante des outils pour sélectionner mémoire .
Développez le menu déroulant client-serveur pour sélectionner client ou serveur .
Parcourez les catégories et les articles d'utilisation de la mémoire.Pour les catégories ou les articles que vous voulez voir le modèle d'utilisation des heures supplémentaires, élargissez la catégorie pour afficher le tableau.
Mémoire du noyau — Usage de la mémoire par les processus de construction du noyau de l'Engine, y compris le réseau, les avatars et les éléments d'interface graphique auxquels vous n'avez pas de contrôle direct.
Mémoire de lieu — Consommation de mémoire en fonction de la façon dont vous construisez votre expérience, y compris les modèles, le terrain, les parties, les scripts et tous les autres éléments personnalisés que vous ajoutez à votre expérience.
Référence à la mémoire de lieuCatégorie Avertissement Cache HTTP Ressources (images, mailles, etc.) chargées depuis les serveurs Roblox et maintenant stockées dans un cache en mémoire. Instances Instances à la emplacement. Signaux Signaux qui se déclenchent entre des instances (un événement se déclenchant sur une instance pour déclencher un événement sur une autre instance). LuaHeap Mémoire d'堆 pour les scripts du noyau (scripts expédiés avec le client Roblox) et les scripts personnalisés. Scénario Scripts de Luau. Collision physique Données de collision pour les simulations de physique. Parties de physique Géométrie physique et cinétique. Modèles solides graphiques Données graphiques pour rendre des modèles solides. GraphiquesMeshParts Graphiques pour MeshPart objets. Particules graphiques Graphiques pour les systèmes de particules. Parties graphiques Graphiques pour les parties. Hash spatial graphique Rendu général. Terrain graphique Graphiques pour le terrain. Texture graphique Mémoire de texture. Personnage de texture graphique Mémoire de texture pour les personnages. Sonnes Sons en mémoire. Sons de diffusion en continu Diffusion de sons. TerrainVoxels Voxels du terrain. Physique du terrain Physique du terrain. Guis Mémoire utilisée par les éléments GUI communs. Animation Mémoire utilisée pour les données d'animation, telles que les poses et KeyframeSequence les données en cache pour les animations d'avatar. Navigateur Mémoire utilisée par les structures de soutien pour PathfindingService . Mémoire non suivie — Allocations de mémoire que le système ne peut pas facilement attribuer à une source spécifique.
PlaceScriptMemory — Utilisation de la mémoire de vos scripts avec des insights sur la façon dont les scripts individuels et les balises de mémoire personnalisées contribuent à l'utilisation globale de la mémoire.
Mémoire CoreScriptMemory — Usage de la mémoire par les scripts internes du moteur dont vous n'avez pas de contrôle direct.
Parmi ces catégories, PlaceMemory et PlaceScriptMemory sont les plus importantes pour l'optimisation des performances, car elles vous aident à comprendre comment vos choix de construction et de script affectent la consommation de mémoire et les zones potentielles d'optimisation.Pour plus d'insights dans PlaceScriptMemory , vous pouvez utiliser l'outil Luau heap pour créer des captures d'écran et analyser l'allocation de mémoire par différentes métriques.
Tas Luau
L'outil Luau heap vous permet de créer des captures d'écran sur la répartition actuelle de la mémoire de pile, qui fait référence à l'allocation de mémoire aux scripts Luau pour le stockage des variables, des tables, des fonctions et d'autres structures de données d'exécution.Cet outil fournit plusieurs vues d'allocation de mémoire pour vous aider à identifier l'allocation de mémoire et les problèmes sous différents angles, tels que les types d'objets et les Classesd'engine.Il vous permet également de créer plusieurs captures d'écran pour comparer les différences d'utilisation de la mémoire au fil du temps.
Créer des instantanés
Pour créer une capture d'écran de votre allocation de mémoire :
Ouvrez la console de développeur .
Développez la liste déroulante des outils pour sélectionner LuauHeap .
Développez le menu déroulant client-serveur pour sélectionner client ou serveur .
Cliquez sur le bouton Créer une capture d'écran .
Analyser l'utilisation de la mémoire
L'outil fournit cinq vues que vous pouvez sélectionner pour afficher votre allocation de mémoire Luau en fonction de différentes vues :
- Graph — Montre un arbre d'utilisation de mémoire agrégé avec chaque nœud représentant un objet avec une mémoire attribuée.
- Balises d'objets — Affiche les tailles de mémoire et le nombre par types d'exécution, tels que function, table et thread.
- Catégories de mémoire — Affiche les tailles et les comptages de la mémoire attribuée par le moteur par les catégories de mémoire attribuées par le moteur.Le moteur attribue une catégorie de mémoire à un objet au moment de l'allocation.
- Classe d'objets — Affiche les tailles de mémoire et le nombre de classes moteur que vos scripts utilisent et stockent leurs instances, telles que EnumItem , Animation , CFrame .
- Références uniques — Montre le nombre de comptes et le nombre total d'instances qui n'ont pas de parent dans le modèle de données et ne sont accessibles qu'aux scripts, ainsi que tous les chemins qui fixent l'objet d'instance.
Graphique
La vue Graph est la vue la plus détaillée et la plus complexe parmi toutes les vues de pile Luau.Il montre un arbre d'utilisation de mémoire agrégé avec chaque nœud représentant un objet avec une mémoire attribuée.L'arbre montre comment les objets se connectent les uns aux autres et dérive le chemin le plus court entre les références d'objets.Il a les colonnes suivantes de la taille de la mémoire : Taille — L'utilisation de la mémoire par le contenu plus l'utilisation de la mémoire par le contenu dans la structure de données.Soi-même — La mémoire directement allouée à la structure de données elle-même, en excluant l'utilisation de la mémoire par tout contenu qu'elle contient.

La racine du graphique d'arbre est registry , qui stocke toutes les références moteur et Luau, telles que les fonctions connectées aux signaux ou la bibliothèque des tâches, les tables retournées par les scripts de module et les fonctions globales, les tables et les Classes.Il parent généralement les entrées communes suivantes :
- Module @Path.To.Module est la table renvoyée par un script de module.
- name:123 =Path.To.Module est une fonction à l'intérieur d'un script spécifié.Les fonctions anonymes n'ont pas de noms.Le nœud de niveau supérieur fait souvent référence à la fonction globale de script.Les fonctions anonymes n'ont pas de nom.Exemple : :1= Workspace.[Username].Animate .
- upvalue est une référence pour les fonctions capturées. Voir Capture du domaine local pour plus d'informations.
- env fait référence à l'environnement d'une fonction. Dans la plupart des cas, c'est une table représentant la portée globale d'un script.
- globals fait référence à l'environnement d'un fil.
- [key] représente des objets qui servent de clés de table.
- array représente un matrice.
- stack fait référence à l'array qui stocke tous les locaux de fonction.
- constants représente toutes les valeurs constantes que les fonctions utilisent.
Catégories de mémoire
La vue catégories de mémoire montre les tailles de mémoire et le nombre par catégories de mémoire, que le moteur attribue aux objets au moment de l'allocation.Par défaut, la catégorie de mémoire a le même nom que le script, ou vous pouvez attribuer des noms de catégorie de mémoire personnalisés en utilisant la fonction debug.setmemorycategory.
Références uniques
La vue références uniques montre l'utilisation de la mémoire des instances qui n'ont pas de parent dans le modèle de données et ne sont accessibles qu'aux scripts, ainsi que tous les chemins qui fixent l'objet d'instance.Cette vue a deux métriques :
- Compter — Affiche le nombre d'instances avec le même nom qui sont accessibles à partir du même chemin, telles que plusieurs instances nommées Dragon dans la même table.
- Instances totales — Montre le nombre total d'objets à l'intérieur de ces racines, tels que toutes les parties, les scripts et les objets sonores qui construisent une instance Dragon.

Cette vue est utile pour identifier les instances connectées inutiles, que vous devez déconnecter lorsque vous n'en avez plus besoin.Si vous voyez de nombreux cas imprévus dans cette voir, vérifiez les chemins qui les contiennent et évaluez si ils sont nécessaires.