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 composant de construction et de script que vous ajoutez à votre jeu 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, vous devez donc surveiller activement l'utilisation.


La Console Développeur fournit deux outils pour surveiller l'utilisation de la mémoire :

  • Mémoire — Affiche 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ée des instantanés de la mémoire du tas, qui fait référence à l'allocation de mémoire de vos scripts. Cet outil fournit plusieurs vues 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 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.

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 sur l'évolution de l'utilisation au fil du temps.

Pour voir l'allocation de mémoire :

  1. Ouvrez la Console 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 Développeur avec l'option Mémoire mise en surbrillance 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 au fil du temps, développez la catégorie pour afficher un graphique.

    • CoreMemory — Utilisation de la mémoire par les processus de construction principaux du moteur, y compris le réseau, 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 jeu, y compris les modèles, le terrain, les pièces, les scripts et tous les autres éléments personnalisés que vous ajoutez à votre jeu.

      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 du tas pour les scripts principaux (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.
      GraphicsMeshPartsDonnées graphiques pour les objets MeshPart.
      GraphicsParticlesDonnées graphiques pour les systèmes de particules.
      GraphicsPartsDonnées graphiques pour les pièces.
      GraphicsSpatialHashRendu général.
      GraphicsTerrainDonnées graphiques pour le terrain.
      GraphicsTextureMémoire de texture.
      GraphicsTextureCharacterMémoire de texture pour les personnages.
      SoundsSons en mémoire.
      StreamingSoundsSons en streaming.
      TerrainVoxelsVoxels de terrain.
      TerrainPhysicsPhysique du terrain.
      GuiMémoire utilisée par les é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 ne peut pas facilement attribuer à une source particulière.

    • PlaceScriptMemory — Utilisation de la mémoire de vos scripts avec des informations sur la façon dont les scripts individuels et les balises de mémoire personnalisées contribuent à 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 d'optimisation. 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 du tas, 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 fournit plusieurs vues pour vous aider à identifier 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 au fil du temps.

Créer des instantanés

Pour créer un instantané de votre allocation de mémoire :

  1. Ouvrez la Console 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 Développeur avec l'option LuauHeap mise en surbrillance 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 fournit de nombreuses vues sur l'utilisation de la mémoire Luau :

  • Graphique — Montre un arbre d'utilisation de la mémoire agrégé, chaque nœud représentant un objet avec de la mémoire allouée.
  • Balises d'objet — Montre les tailles et les comptes de mémoire par types d'exécution, tels que function, table, et thread.
  • Catégories de mémoire — Montre les tailles et les comptes de mémoire 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'objet — Montre les tailles et les comptes de mémoire par classes du moteur que vos scripts utilisent et stockent leurs instances, telles que EnumItem, Animation, CFrame. Critiquement, cette vue ne montre pas l'utilisation de la mémoire à l'intérieur du moteur lui-même, seulement la VM Luau.
  • Références uniques et Instances sans parent — Montre les comptes et les nombres totaux 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 des scripts. Montre également tous les chemins qui maintiennent l'objet d'instance.

Graphique

La vue Graphique est la vue 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 les uns aux autres et dérive le chemin le plus court entre les références d'objet. Il a les colonnes suivantes de taille de mémoire :

  • Taille — L'utilisation de la mémoire elle-même plus l'utilisation de la mémoire par les contenus à l'intérieur de la structure de données.
  • Soi — 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 de l'arbre graphique est registry, qui stocke toutes les références du moteur et de Luau, telles que les fonctions connectées aux signaux ou à la bibliothèque de tâches, les tables retournées par les scripts de module, et les fonctions, tables et classes globales. Elle parent généralement les entrées communes 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 de script global. Exemple : :1= Workspace.[Username].Animate.
  • upvalue est une référence pour les fonctions capturées. Voir Capturer le scope 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 le scope global d'un script.
  • globals fait référence à l'environnement d'un thread.
  • [key] représente des objets qui servent 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 que les fonctions utilisent.

Catégories de mémoire

La vue Catégories de mémoire montre les tailles et les comptes de mémoire 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égories de mémoire personnalisés en utilisant la fonction debug.setmemorycategory.

Références uniques et instances sans parent

Les vues Références uniques et Instances sans parent 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 maintiennent 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 sans parent. Les deux vues montrent deux métriques :

  • Compte — 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 des instances — Le nombre total d'objets à l'intérieur de ces racines, comme toutes les pièces, scripts et objets sonores qui construisent une instance Dragon.
Un exemple de vue Référence unique

Ces vues sont utiles pour identifier les 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.