Utilisation de la mémoire

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

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 :
    1. Ouvrez le Menu Roblox dans le jeu.

    2. Sélectionnez l'onglet Paramètres.

    3. 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 :

  1. Ouvrez la Console du Développeur.

  2. Développez le menu déroulant des outils pour sélectionner Mémoire.

    Menu déroulant de tous les outils de la Console du Développeur avec l'option Mémoire mise en évidence pour sélection.
  3. Développez le menu déroulant client-serveur pour sélectionner Client ou Serveur.

  4. 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.

      CatégorieDescription
      HttpCacheActifs (images, maillages, etc.) chargés depuis les serveurs Roblox et maintenant conservés dans un cache en mémoire.
      InstancesInstances dans le lieu.
      SignalsSignaux 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).
      LuaHeapMémoire heap pour les scripts de base (scripts fournis avec le client Roblox) et les scripts personnalisés.
      ScriptScripts Luau.
      PhysicsCollisionDonnées de collision pour les simulations physiques.
      PhysicsPartsGéométrie et cinétique physiques.
      GraphicsSolidModelsDonnées graphiques pour rendre des modèles solides.
      GraphicsMeshPartsGraphiques pour les objets MeshPart.
      GraphicsParticlesGraphiques pour les systèmes de particules.
      GraphicsPartsGraphiques pour les pièces.
      GraphicsSpatialHashRendu général.
      GraphicsTerrainGraphiques pour le terrain.
      GraphicsTextureMémoire des textures.
      GraphicsTextureCharacterMémoire des textures pour les personnages.
      SoundsSons en mémoire.
      StreamingSoundsSons en streaming.
      TerrainVoxelsVoxels de terrain.
      TerrainPhysicsPhysique du terrain.
      GuiMémoire utilisée par des éléments GUI courants.
      AnimationMé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.
      NavigationMé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 :

  1. Ouvrez la Console du Développeur.

  2. Développez le menu déroulant des outils pour sélectionner LuauHeap.

    Menu déroulant de tous les outils de la Console du Développeur avec l'option LuauHeap mise en évidence pour sélection.
  3. Développez le menu déroulant client-serveur pour sélectionner Client ou Serveur.

  4. 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.
Un exemple de vue Graphique

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.
Un exemple de vue de Référence Unique

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.

©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.