ゲームに追加するすべてのビルディングおよびスクリプトコンポーネントは、メモリを消費します。メモリ使用量がエンジンの制限に達すると、ユーザーのデバイスやサーバーがクラッシュする可能性があるため、使用量を積極的に監視する必要があります。
開発者コンソールは、メモリ使用量を監視するための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:
Open the in-game Roblox Menu.

Select the Settings tab.
Scroll down to Developer Console and click Open.
メモリ
メモリツールは、リアルタイムのメモリ使用量をカテゴリ別に分類して表示します。各カテゴリのメモリ使用量をMB単位で表示し、時間の経過に伴う使用の変化を示すチャートを生成します。
メモリ割り当てを表示するには:
開発者コンソールを開きます。
ツールのドロップダウンを展開してメモリを選択します。

クライアント-サーバードロップダウンを展開してクライアントまたはサーバーを選択します。
メモリ使用量のカテゴリや項目をブラウズします。時間の経過に伴う使用量を確認したい場合は、カテゴリを展開してチャートを表示します。
CoreMemory — エンジンのコアビルディングプロセスによるメモリ使用量。ネットワーキング、アバター、GUI要素など、直接制御できないものが含まれます。
PlaceMemory — ゲームの構築方法に基づくメモリ使用量。モデル、地形、パーツ、スクリプト、ゲームに追加したすべてのカスタム要素が含まれます。
PlaceMemoryの参照カテゴリ 説明 HttpCache Robloxサーバーから読み込まれ、現在メモリ内のキャッシュに保持されているアセット(画像、メッシュなど)。 Instances Instancesの場所。 Signals インスタンス間で発火するシグナル(1つのインスタンスで発火したイベントが別のインスタンスのイベントをトリガーする)。 LuaHeap コアスクリプト(Robloxクライアントに付属するスクリプト)とカスタムスクリプトのためのヒープメモリ。 Script Luauスクリプト。 PhysicsCollision 物理シミュレーションのための衝突データ。 PhysicsParts 物理ジオメトリと運動学。 GraphicsSolidModels ソリッドモデルをレンダリングするためのグラフィックスデータ。 GraphicsMeshParts MeshPartオブジェクトのためのグラフィックス。 GraphicsParticles パーティクルシステムのためのグラフィックス。 GraphicsParts パーツのためのグラフィックス。 GraphicsSpatialHash 一般的なレンダリング。 GraphicsTerrain 地形のためのグラフィックス。 GraphicsTexture テクスチャメモリ。 GraphicsTextureCharacter キャラクターのためのテクスチャメモリ。 Sounds メモリ内のサウンド。 StreamingSounds ストリーミングサウンド。 TerrainVoxels 地形ボクセル。 TerrainPhysics 地形物理。 Gui 一般的なGUI要素によって使用されるメモリ。 Animation ポーズやKeyframeSequenceキャッシュデータなどのアニメーションデータに使用されるメモリ。 Navigation PathfindingServiceのサポート構造によって使用されるメモリ。 UntrackedMemory — システムが特定のソースに簡単に帰属できないメモリ割り当て。
PlaceScriptMemory — スクリプトのメモリ使用量で、個々のスクリプトやカスタムメモリタグが全体のメモリ使用量にどのように寄与しているかの洞察を提供します。
CoreScriptMemory — あなたが直接制御できない内部エンジンスクリプトによるメモリ使用量。
これらのカテゴリの中で、PlaceMemoryとPlaceScriptMemoryはパフォーマンス最適化にとって最も重要なものであり、ビルディングおよびスクリプトの選択がメモリ消費にどのように影響するか、最適化の潜在的な領域を理解するのに役立ちます。PlaceScriptMemoryに関するさらなる洞察を得るには、Luauヒープツールを使用してスナップショットを作成し、さまざまなメトリックによるメモリ割り当てを分析してください。
Luauヒープ
Luauヒープツールを使用すると、ヒープメモリの現在の割り当てのスナップショットを作成できます。ヒープメモリは、Luauスクリプトが変数、テーブル、関数、およびその他のランタイムデータ構造を格納するために使用するメモリを指します。このツールは、オブジェクトタイプやエンジンクラスなど、さまざまな視点から問題を特定するのに役立ついくつかのビューを提供します。また、時間の経過に伴うメモリ使用量の違いを比較するために、複数のスナップショットを作成することもできます。
スナップショットの作成
メモリ割り当てのスナップショットを作成するには:
開発者コンソールを開きます。
ツールのドロップダウンを展開してLuauHeapを選択します。

クライアント-サーバードロップダウンを展開してクライアントまたはサーバーを選択します。
スナップショットを作成ボタンをクリックします。
メモリ使用量の分析
このツールは、Luauメモリ使用量に関する多くのビューを提供します:
- グラフ — メモリ使用量の集約ツリーを表示し、各ノードはメモリが割り当てられたオブジェクトを表します。
- オブジェクトタグ — function、table、threadなどのランタイムタイプによるメモリサイズとカウントを表示します。
- メモリカテゴリ — エンジンが割り当てたメモリカテゴリによるメモリサイズとカウントを表示します。エンジンは、割り当て時にオブジェクトにメモリカテゴリを割り当てます。
- オブジェクトクラス — スクリプトが使用し、そのインスタンスを格納するエンジンクラスによるメモリサイズとカウントを表示します。重要なことに、このビューはエンジン自体のメモリ使用量を表示せず、Luau VMのみを表示します。
- ユニークリファレンスおよび親なしインスタンス — データモデルに親を持たず、スクリプトからのみ到達可能なユニークリファレンスまたは残りのすべてのリファレンスのインスタンスのカウントと合計数を表示します。また、インスタンスオブジェクトをピン留めするすべてのパスも表示します。
グラフ
グラフビューは、すべての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関数を使用してカスタムメモリカテゴリ名を割り当てることもできます。
ユニークリファレンスと親なしインスタンス
ユニークリファレンスおよび親なしインスタンスビューは関連しています。どちらも、データモデルに親を持たず、スクリプトからのみ到達可能なインスタンスのメモリ使用量を表示し、インスタンスオブジェクトをピン留めするすべてのパスを表示します。インスタンスがLuauスクリプト内でのみ参照されている場合、ユニークリファレンスに表示されます。そうでない場合、Robloxシステムによっても使用され、親なしインスタンスに表示されます。両方のビューは2つのメトリックを表示します:
- カウント — 同じパスから到達可能な同じ名前のインスタンスの数。たとえば、同じテーブル内に複数のDragonという名前のインスタンスがある場合。
- 合計インスタンス — それらのルート内のオブジェクトの合計数。たとえば、Dragonインスタンスを構成するすべてのパーツ、スクリプト、サウンドオブジェクトなど。

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