エクスペリエンスに追加するすべてのビルドとスクリプトコンポーネントは、メモリを消費します。メモリ使用量がエンジンの制限に達すると、ユーザーのデバイスまたはサーバーがクラッシュし、メモリ使用量を積極的にモニタリングし、最適化のためのアクションを取る必要があります。 開発者コンソール は、メモリ使用量のモニタリングに使用できる 2つのツールを提供します。これには以下が含まれます:
メモリ — カテゴリ別のリアルタイムメモリ消費を表示し、カスタムコンポーネントとエンジン内プロセスの両方のメモリ使用を含む。
Luau ヘープ — スクリプトに割り当てられたメモリに関連する堆メモリのスナップショットを作成するこのツールは、オブジェクトタイプやエンジンクラスなど、異なる視点から現在のメモリ割り当てと問題を識別するのを助けるさまざまなメモリ割り当てビューを提供します。また、複数のスナップショットを作成して、時間経過によるメモリ使用量の違いを比較することもできます。
次の方法のいずれかを使用して、テストまたはライブエクスペリエンスセッション中にコンソールを開くことができます:
- プレス F9 。
- チャットに /console を入力します。
- 経験メニューを使用する:
経験中の Roblox メニュー を開きます。
選択してください 設定 タブ。
スクロールして 開発者コンソール に移動し、 開く をクリックします。
メモリ
メモリ ツールは、リアルタイムメモリ使用量をカテゴリ化して表示します。各カテゴリのメモリ使用量を MB で表示し、時間経過に伴う使用変更のチャートを生成します。
メモリ割り当てを表示するには:
Open the 開発者コンソール 。
ツールドロップダウンを拡張して メモリ を選択します。
クライアント-サーバードロップダウンを拡張して、 クライアント または サーバー を選択します。
メモリ使用カテゴリとアイテムを見る。オーバータイム使用パターンを見たいカテゴリやアイテムの場合、カテゴリを拡大してチャートを表示します。
コアメモリ — エンジンのコアビルドプロセスによるメモリ使用、ネットワーク、アバター、およびGUI(グラフィカルユーザーインターフェイス)要素を含む、直接制御できないプロセスのメモリ使用
プレースメモリ — エクスペリエンスを構築する方法 (モデル、地形、パーツ、スクリプト、その他すべてのカスタム要素) に基づいて、メモリ使用量を計算します。
プレースメモリ参照カテゴリ 説明 HTTPキャッシュ Roblox サーバーからロードされたアセット (画像、メッシュなど) は、メモリのキャッシュに保持されています。 インスタンス Instances を場プレースに置きます。 シグナル インスタンス間で発信するシグナル (1つのインスタンスで発生するイベントをもう1つのインスタンスでトリガーするイベント) LuaHeap コアスクリプト (Roblox クライアントで配信されるスクリプト) とカスタムスクリプトの両方のためのヒープメモリ。 スクリプト Luau スクリプト。 物理コリジョン 物理シミュレーションの衝突データ。 物理部品 物理学の幾何学と動力学。 グラフィックソリッドモデル ソリッドモデルをレンダリングするグラフィックデータ。 グラフィックMeshパーツ MeshPart オブジェクトのグラフィック。 グラフィックパーティクル パーティクルシステムのグラフィック。 グラフィックパーツ パーツのグラフィック。 グラフィックス空間ハッシュ 一般レンダリング。 グラフィックスの地形 地形用グラフィック。 グラフィックステクスチャ テクスチャメモリ。 グラフィックスTextureCharacter キャラクターのテクスチャメモリ。 サウンド メモリ内サウンド。 ストリームサウンド ストリーミングサウンド。 地形ボクセル 地形ボクセル。 テレイン物理学 地形の物理。 グイ 一般的なGUI 要素に使用されるメモリ。 アニメーション ポーズやアバターアニメーションのためのアニメーションデータに使用されるメモリ、KeyframeSequence キャッシュデータなど。 ナビゲート サポート構造によって使用されるメモリ PathfindingService 。 追跡されないメモリ — システムが特定のソースに簡単に割り当てることができないメモリ割り当て。
PlaceScriptMemory — 個々のスクリプトとカスタムメモリタグが全体のメモリ使用にどのように貢献するかを理解したスクリプトのメモリ使用量。
CoreScriptMemory — 直接制御できない内部エンジンスクリプトによるメモリ使用。
これらのカテゴリのうち、 プレースメモリ と プレーススクリプトメモリ は、ビルドとスクリプト選択がメモリ消費と最適化可能な領域にどのように影響するかを理解するのに役立つため、パフォーマンスの最適化に最も重要なものです。For more insights into プレーススクリプトメモリ , you can use the Luau ヘープ tool to create snapshots and analyze memory allocation by different metrics.
Luau ヘップ
Luau ヘープ ツールでは、現在の堆メモリの割り当てにスナップショットを作成でき、これは変数、テーブル、関数、その他の実行時データ構造を保存するための Luau スクリプトへのメモリ割り当てを参照します。このツールは、オブジェクトタイプやエンジンクラスなど、異なる視点からメモリ割り当てと問題を識別するのを助けるさまざまなメモリ割り当てビューを提供します。また、複数のスナップショットを作成して、時間経過によるメモリ使用量の違いを比較することもできます。
スナップショットを作成
メモリ割り当てのスナップショットを作成するには:
Open the 開発者コンソール 。
ツールドロップダウンを拡張して LuauHeap を選択します。
クライアント-サーバードロップダウンを拡張して、 クライアント または サーバー を選択します。
クリックする スナップショットを作成 ボタン。
メモリ使用量を分析
ツールは、異なるビューに基づいて Luau メモリの割り当てを表示できる 5つのビューを提供します:
- グラフ — 各ノードが割り当てられたメモリのオブジェクトを表示する集計メモリ使用トリーを表示
- オブジェクトタグ — メモリサイズとランタイムタイプ (例: function、table、threadなど) を表示します。
- メモリカテゴリ — エンジンが割り当てたメモリカテゴリによって、メモリサイズと数を表示します。エンジンは、割り当て時にオブジェクトにメモリカテゴリを割り当てます。
- オブジェクトクラス — スクリプトが使用して保存するエンジンクラスのメモリサイズと数を表示し、例えば EnumItem、Animation、CFrame など、インスタンスを保存するクラスを表示します。
- ユニークな参照 — データモデルに親がなく、スクリプトでしかアクセスできないインスタンスの数と合計数を表示し、インスタンスオブジェクトをピン留めるすべてのパスを示す
グラフ
グラフ ビューは、すべての Luau ヒープビューの中で最も詳細で複雑なビューです。各ノードが割り当てられたメモリのオブジェクトを表すノードで構成された集計メモリ使用トリーを表示します。ツリーは、オブジェクトが相互に接続し、オブジェクトの参照間の最短経路をどのように派生させるかを示します。次のメモリサイズの列があります:サイズ — 自分のメモリ使用量に加えて、データ構造内のコンテンツのメモリ使用量。自己 — データ構造自体に直接割り当てられたメモリ、含まれるコンテンツのメモリ使用を除外します。

ツリーグラフの根は registry で、シグナルに接続された機能やタスクライブラリ、モジュールスクリプトによって返されたテーブルやクラスなど、すべてのエンジンと Luau の参照を保存します。通常、次の共通のエントリを親にします:
- Module @Path.To.Module は、モジュールスクリプトによって返されたテーブルです。
- name:123 =Path.To.Module は、指定されたスクリプト内の機能です。無名の関数には名前がありません。トップレベルノードはしばしばグローバルスクリプト機能を参照します。無名の関数には名前がありません。例: :1= Workspace.[Username].Animate 。
- upvalue は、捕捉された関数の参照です。詳細は、ローカルスコープをキャプチャする を参照してください。
- env は、機能の環境を参照します。ほとんどの場合、それはスクリプトのグローバルスコープを表すテーブルです。
- globals はスレッドの環境を指します。
- [key] は、テーブルのキーとして機能するオブジェクトを表します。
- array は配列を表します。
- stack は、すべての機能ローカルを保存する配列を参照します。
- constants は、機能が使用するすべての定数値を表します。
メモリカテゴリ
メモリカテゴリ ビューは、エンジンが割り当て時にオブジェクトに割り当てるメモリカテゴリによるメモリサイズとカウントを表示します。デフォルトでは、メモリカテゴリはスクリプトと同じ名前を持ち、または debug.setmemorycategory 関数を使用してカスタムメモリカテゴリ名を割り当てることができます。
ユニークな参照
ユニークな参照ビューは、データモデルに親がなく、スクリプトでのみアクセス可能なインスタンスのメモリ使用を示し、インスタンスオブジェクトをピン留めするすべてのパスを表示します。このビューには 2つのメトリックがあります:
- カウント — 同じ名前のインスタンスの数を表示し、同じパスからアクセス可能な複数のインスタンス、例えば同じテーブルに名前が Dragon という複数のインスタンスを表示します。
- 総インスタンス — それらの根の内のオブジェクトの合計数を表示し、すべてのパーツ、スクリプト、およびサウンドオブジェクトを含む Dragon インスタンスを構成します。

このビューは、不要な接続されたインスタンスを識別するのに便利で、不要になったときに切断する必要があります。このビューに多くの予期せぬインスタンスが見つかった場合は、それらを保持するパスをチェックし、必要かどうかを評価します。