メモリ使用量

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

エクスペリエンスに追加するすべての建物やスクリプトコンポーネントは、メモリを消費します。メモリ使用量がエンジンの制限に達すると、ユーザーのデバイスやサーバーがクラッシュする可能性があるため、使用量を積極的に監視する必要があります。


デベロッパーコンソール では、メモリ使用量を監視するための2つのツールを提供しています。

  • メモリ — カスタムコンポーネントおよびエンジンの内部プロセスを含む、使用カテゴリごとのリアルタイムメモリ消費を表示します。

  • Luauヒープ — スクリプトのメモリ割り当てを指すヒープメモリのスナップショットを作成します。このツールは、オブジェクトタイプやエンジンクラスなどのさまざまな視点から現在のメモリ割り当てと問題を特定するのを助けるために、いくつかのビューを提供します。また、時間の経過に伴うメモリ使用の違いを比較するために、複数のスナップショットを作成することもできます。

You can open the console during a testing or live game session using any of the following ways:

  • Press F9.
  • Type /console into the chat.
  • Use the in-game menu:
    1. Open the in-game Roblox Menu.

    2. Select the Settings tab.

    3. Scroll down to Developer Console and click Open.

メモリ

メモリツールは、リアルタイムのメモリ使用量をカテゴリ別に分類して表示します。各カテゴリのメモリ使用量をMB単位で表示し、時間の経過に伴う使用量の変化に関するチャートを生成します。

メモリ割り当てを表示するには:

  1. デベロッパーコンソールを開きます。

  2. ツールのドロップダウンを展開してメモリを選択します。

    メモリオプションが選択されているすべてのデベロッパーコンソールツールのドロップダウンメニュー。
  3. クライアント-サーバードロップダウンを展開してクライアントまたはサーバーを選択します。

  4. メモリ使用量カテゴリやアイテムを参照します。時間の経過に伴う使用量を見たい場合は、カテゴリを展開してチャートを表示します。

    • CoreMemory — ネットワーク、アバター、あなたが直接制御できないGUI要素を含む、エンジンのコア構築プロセスによるメモリ使用量。

    • PlaceMemory — モデル、地形、パーツ、スクリプト、およびあなたがエクスペリエンスに追加する他のすべてのカスタム要素を含む、エクスペリエンスの構築に基づくメモリ使用量。

      カテゴリ説明
      HttpCacheRobloxサーバーからロードされ、現在メモリ内のキャッシュに保持されているアセット(画像、メッシュなど)。
      InstancesInstancesのプレイス内。
      Signalsインスタンス間で発生するシグナル(1つのインスタンスで発生したイベントが別のインスタンスのイベントをトリガーする)。
      LuaHeapコアスクリプト(Robloxクライアントに同梱されているスクリプト)およびカスタムスクリプト用のヒープメモリ。
      ScriptLuauスクリプト。
      PhysicsCollision物理シミュレーション用の衝突データ。
      PhysicsParts物理ジオメトリと運動力学。
      GraphicsSolidModelsソリッドモデルをレンダリングするためのグラフィックスデータ。
      GraphicsMeshPartsMeshPartオブジェクトのためのグラフィックス。
      GraphicsParticlesパーティクルシステム用のグラフィックス。
      GraphicsPartsパーツ用のグラフィックス。
      GraphicsSpatialHash一般的なレンダリング。
      GraphicsTerrain地形用のグラフィックス。
      GraphicsTextureテクスチャメモリ。
      GraphicsTextureCharacterキャラクター用のテクスチャメモリ。
      Soundsメモリ内のサウンド。
      StreamingSoundsストリーミングサウンド。
      TerrainVoxels地形ボクセル。
      TerrainPhysics地形の物理。
      Gui一般的なGUI要素によって使用されるメモリ。
      AnimationポーズやKeyframeSequenceキャッシュデータなど、アニメーションデータに使用されるメモリ。
      NavigationPathfindingServiceのためのサポート構造によって使用されるメモリ。
    • UntrackedMemory — システムが特定のソースに簡単に帰属させられないメモリ割り当て。

    • PlaceScriptMemory — あなたのスクリプトのメモリ使用量で、個々のスクリプトやカスタムメモリタグが全体のメモリ使用量にどのように寄与しているかについての洞察を提供します。

    • CoreScriptMemory — あなたが直接制御できない内部エンジンスクリプトによるメモリ使用量。

これらのカテゴリの中で、PlaceMemoryPlaceScriptMemoryはパフォーマンスの最適化に最も重要であり、あなたの構築とスクリプトの選択がメモリ消費にどのように影響するか、最適化の可能な領域を理解するのに役立ちます。PlaceScriptMemoryに関する詳細を確認するには、Luauヒープツールを使用してスナップショットを作成し、さまざまなメトリクスによるメモリ割り当てを分析します。

Luauヒープ

Luauヒープツールは、変数、テーブル、関数、およびその他のランタイムデータ構造を格納するためにLuauスクリプトが使用するヒープメモリの現在の割り当てのスナップショットを作成することを可能にします。このツールは、オブジェクトタイプやエンジンクラスなど、さまざまな視点から問題を特定するのを助けるために、いくつかのビューを提供します。また、時間の経過に伴うメモリ使用の違いを比較するために、複数のスナップショットを作成することもできます。

スナップショットを作成する

メモリ割り当てのスナップショットを作成するには:

  1. デベロッパーコンソールを開きます。

  2. ツールのドロップダウンを展開してLuauHeapを選択します。

    LuauHeapオプションが選択されているすべてのデベロッパーコンソールツールのドロップダウンメニュー。
  3. クライアント-サーバードロップダウンを展開してクライアントまたはサーバーを選択します。

  4. スナップショットを作成ボタンをクリックします。

メモリ使用量を分析する

このツールは、Luauメモリ使用量について多くのビューを提供します:

  • グラフ — 集計されたメモリ使用量ツリーを表示し、各ノードはメモリが割り当てられたオブジェクトを表します。
  • オブジェクトタグ — ランタイムタイプ(例:functiontable、およびthread)ごとのメモリサイズとカウントを表示します。
  • メモリカテゴリ — エンジンが割り当てたメモリカテゴリに基づくメモリサイズとカウントを表示します。エンジンは、割り当て時にオブジェクトにメモリカテゴリを割り当てます。
  • オブジェクトクラス — スクリプトで使用され、そのインスタンスを保存するエンジンクラスに基づくメモリサイズとカウントを表示します(例:EnumItemAnimationCFrame)。重要なことに、このビューはエンジン内でのメモリ使用量を示さず、Luau VMのもののみを表示します。
  • ユニーク参照親なしインスタンス — データモデルに親がなく、スクリプトからのみ到達可能なユニーク参照または残りのすべての参照のインスタンスのカウントと合計数を表示します。また、インスタンスオブジェクトを固定するすべてのパスも表示します。

グラフ

グラフビューは、すべてのLuauヒープビューの中で最も詳細で複雑なビューです。集計されたメモリ使用量ツリーを示し、各ノードはメモリが割り当てられたオブジェクトを表します。ツリーはオブジェクト間の接続方法を示し、オブジェクト参照間の最短経路を導き出します。以下のメモリサイズの列があります:

  • サイズ — 自身のメモリ使用量にデータ構造内の内容によるメモリ使用量を加えたもの。
  • 自身 — データ構造自体に対して直接割り当てられたメモリ、含まれた内容によるメモリ使用量は除外。
グラフビューの例

ツリーグラフのルートはregistryであり、すべてのエンジンおよびLuau参照(シグナルに接続された関数、タスクライブラリ、モジュールスクリプトによって返されたテーブル、グローバル関数、テーブル、およびクラスなど)を格納します。通常、次の一般的なエントリを親に持ちます:

  • Module @Path.To.Module はモジュールスクリプトによって返されるテーブルです。
  • name:123 =Path.To.Module は指定されたスクリプト内の関数です。匿名関数には名前がありません。最上位のノードは通常、グローバルスクリプト関数を指します。例::1= Workspace.[ユーザー名].アニメート
  • upvalue は捕捉した関数の参照です。詳細についてはローカルスコープを捕捉を参照してください。
  • env は関数の環境を指します。ほとんどのケースでは、スクリプトのグローバルスコープを表すテーブルです。
  • globals はスレッドの環境を指します。
  • [key] はテーブルキーとして機能するオブジェクトを表します。
  • array は配列を表します。
  • stack はすべての関数ローカルを格納する配列を指します。
  • constants は関数が使用するすべての定数値を表します。

メモリカテゴリ

メモリカテゴリビューは、エンジンが割り当て時にオブジェクトに割り当てるメモリカテゴリごとのメモリサイズとカウントを示します。デフォルトでは、メモリカテゴリはスクリプトと同じ名前を持ちますが、debug.setmemorycategory関数を使用してカスタムメモリカテゴリ名を割り当てることもできます。

ユニーク参照と親なしインスタンス

ユニーク参照および親なしインスタンスのビューは関連しています。どちらも、データモデルに親がなく、スクリプトからのみ到達可能なインスタンスのメモリ使用量を表示し、インスタンスオブジェクトを固定するすべてのパスを示します。インスタンスがLuauスクリプト内でのみ参照されている場合、それはユニーク参照の下に表示されます。そうでない場合、Robloxシステムによっても使用され、親なしインスタンスの下にも表示されます。両方のビューでは、次の2つのメトリクスが表示されます:

  • カウント — 同じパスから到達可能な同じ名前のインスタンスの数(例:同じテーブル内の複数のDragonという名前のインスタンス)。
  • 総インスタンス — それらのルート内のオブジェクトの総数(例:Dragonインスタンスを構成するすべてのパーツ、スクリプト、音声オブジェクト)。
ユニークリファレンスビューの例

これらのビューは、不要な接続インスタンスを特定するのに役立ちます。それらをもはや必要としないときは切り離す必要があります。このビューで予期しないインスタンスが多数表示された場合は、それらを保持するパスをチェックし、それらが必要かどうかを評価してください。

©2026 Roblox Corporation。Roblox(ロブロックス)、RobloxロゴおよびPowering Imaginationは、米国並びにその他の国における登録商標および非登録商標です。