Chaque élément 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 planter, il est donc essentiel de surveiller activement cette utilisation.
La Console du Développeur fournit deux outils pour surveiller l'utilisation de la mémoire :
Mémoire — Voir la consommation de mémoire en temps réel par catégories d'utilisation, y compris vos composants personnalisés et les processus internes du moteur.
Tas Luau — Créez des instantanés de la mémoire heap, qui fait référence à l'allocation de mémoire de vos scripts. Cet outil propose plusieurs vues pour vous aider à identifier l'allocation mémoire actuelle et les problèmes sous différents angles, tels que les types d'objets et les classes du moteur. Il vous permet également de créer plusieurs instantanés pour comparer les différences d'utilisation de la mémoire dans le temps.
Vous pouvez ouvrir la console pendant une session de test ou un jeu en direct en utilisant l'une des méthodes suivantes :
- Appuyez sur F9.
- Tapez /console dans le chat.
- Utilisez le menu du jeu :
Ouvrez le Menu Roblox dans le jeu.

Sélectionnez l'onglet Paramètres.
Faites défiler vers le bas jusqu'à Console de développement 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 Mo pour chaque catégorie et génère un graphique des changements d'utilisation au fil du temps.
Pour voir l'allocation mémoire :
Ouvrez la Console du Développeur.
Développez le menu déroulant 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 éléments d'utilisation de la mémoire. Si vous souhaitez voir l'utilisation dans le temps, développez la catégorie pour afficher un graphique.
CoreMemory — Utilisation de la mémoire par les processus de construction de base du moteur, y compris le réseautage, les avatars et les éléments GUI sur lesquels vous n'avez pas de contrôle direct.
PlaceMemory — Utilisation de la mémoire basée sur la façon dont vous construisez votre expérience, y compris les modèles, le terrain, les pièces, les scripts et tous les autres éléments personnalisés que vous ajoutez à votre expérience.
Référence PlaceMemoryCatégorie Description HttpCache Actifs (images, maillages, etc.) chargés depuis les serveurs Roblox et maintenant conservés dans un cache en mémoire. Instances Instances dans le lieu. Signals Signaux qui se déclenchent entre les instances (un événement se déclenchant sur une instance pour déclencher un événement sur une autre instance). LuaHeap Mémoire heap pour les scripts de base (scripts fournis avec le client Roblox) et les scripts personnalisés. Script Scripts Luau. PhysicsCollision Données de collision pour les simulations physiques. PhysicsParts Géométrie et cinétique physiques. GraphicsSolidModels Données graphiques pour rendre des modèles solides. GraphicsMeshParts Graphiques pour les objets MeshPart. GraphicsParticles Graphiques pour les systèmes de particules. GraphicsParts Graphiques pour les pièces. GraphicsSpatialHash Rendu général. GraphicsTerrain Graphiques pour le terrain. GraphicsTexture Mémoire des textures. GraphicsTextureCharacter Mémoire des textures pour les personnages. Sounds Sons en mémoire. StreamingSounds Sons en streaming. TerrainVoxels Voxels de terrain. TerrainPhysics Physique du terrain. Gui Mémoire utilisée par des éléments GUI courants. Animation Mémoire utilisée pour les données d'animation, telles que les poses et les données mises en cache de KeyframeSequence pour les animations d'avatar. Navigation Mémoire utilisée par les structures de support pour PathfindingService. UntrackedMemory — Allocations de mémoire que le système n'arrive pas à attribuer à une source particulière.
PlaceScriptMemory — Utilisation de la mémoire de vos scripts avec des informations sur la contribution des scripts individuels et des balises de mémoire personnalisées à l'utilisation globale de la mémoire.
CoreScriptMemory — Utilisation de la mémoire par les scripts internes du moteur sur lesquels 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 domaines potentiels à optimiser. Pour plus d'informations sur PlaceScriptMemory, utilisez l'outil Tas Luau pour créer des instantanés et analyser l'allocation de mémoire selon différents critères.
Tas Luau
L'outil Tas Luau vous permet de créer des instantanés de l'allocation actuelle de la mémoire heap, qui fait référence à la mémoire que les scripts Luau utilisent pour stocker des variables, des tables, des fonctions et d'autres structures de données d'exécution. Cet outil propose plusieurs vues pour vous aider à identifier des problèmes sous différents angles, tels que les types d'objets et les classes du moteur. Il vous permet également de créer plusieurs instantanés pour comparer les différences d'utilisation de la mémoire au fil du temps.
Créer des instantanés
Pour créer un instantané de votre allocation mémoire :
Ouvrez la Console du Développeur.
Développez le menu déroulant 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 un instantané.
Analyser l'utilisation de la mémoire
L'outil offre de nombreuses vues sur l'utilisation de la mémoire Luau :
- Graphique — Affiche un arbre d'utilisation de la mémoire agrégé, chaque nœud représentant un objet avec de la mémoire allouée.
- Étiquettes d'objets — Affiche les tailles de mémoire et les compteurs par types d'exécution, tels que function, table, et thread.
- Catégories de mémoire — Affiche les tailles de mémoire et les compteurs par catégories de mémoire assignées par le moteur. Le moteur attribue une catégorie de mémoire à un objet au moment de l'allocation.
- Classes d'objets — Affiche les tailles de mémoire et les compteurs par classes de moteur que vos scripts utilisent et où ils stockent leurs instances, telles que EnumItem, Animation, CFrame. Critiquement, cette vue ne montre pas l'utilisation de la mémoire au sein du moteur lui-même, seulement celle de la VM Luau.
- Références uniques et Instances non parentées — Affiche les compteurs et le nombre total d'instances pour références uniques ou toutes les références restantes qui n'ont pas de parent dans le modèle de données et ne sont accessibles que par les scripts. Affiche également tous les chemins qui relient l'objet d'instance.
Graphique
La vue Graphique est la plus détaillée et complexe parmi toutes les vues du tas Luau. Elle montre un arbre d'utilisation de la mémoire agrégé avec chaque nœud représentant un objet avec de la mémoire allouée. L'arbre montre comment les objets se connectent entre eux et dérive le chemin le plus court entre les références d'objet. Il possède les colonnes suivantes pour la taille de la mémoire :
- Taille — L'utilisation de la mémoire propre plus l'utilisation de la mémoire par les contenus au sein de la structure de données.
- Propre — La mémoire directement allouée pour la structure de données elle-même, excluant l'utilisation de la mémoire par tout contenu qu'elle contient.

La racine du graphique est registry, qui stocke toutes les références du moteur et du Luau, telles que les fonctions connectées à des signaux ou à la bibliothèque de tâches, les tables retournées par des scripts de module, et les fonctions, tables et classes globales. Elle a généralement comme parents les entrées courantes suivantes :
- Module @Path.To.Module est la table retourné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 script globale. Exemple : :1= Workspace.[NomUtilisateur].Animate.
- upvalue est une référence pour les fonctions capturées. Voir Capturer l'espace 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 thread.
- [key] représente des objets servant de clés de table.
- array représente un tableau.
- stack fait référence au tableau qui stocke tous les locaux de fonction.
- constants représente toutes les valeurs constantes utilisées par les fonctions.
Catégories de mémoire
La vue Catégories de Mémoire montre les tailles de mémoire et les compteurs 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 porte 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 et instances non parentées
Les vues Références Uniques et Instances non parentées sont liées. Les deux montrent 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 que par des scripts, ainsi que tous les chemins qui relient l'objet d'instance. Si une instance est uniquement référencée dans des scripts Luau, elle apparaît sous Références Uniques. Sinon, elle est également utilisée par les systèmes Roblox et apparaît sous Instances non parentées. Les deux vues affichent deux métriques :
- Compter — Le nombre d'instances avec le même nom qui sont accessibles depuis le même chemin, comme plusieurs instances nommées Dragon dans la même table.
- Total d'instances — Le nombre total d'objets à l'intérieur de ces racines, tels que toutes les pièces, les scripts et les objets sonores qui constituent une instance Dragon.

Ces vues sont utiles pour identifier des instances connectées inutiles, que vous devez déconnecter lorsque vous n'en avez plus besoin. Si vous voyez de nombreuses instances inattendues dans cette vue, vérifiez les chemins qui les maintiennent et évaluez si elles sont nécessaires.