一般的にパフォーマンスの問題を識別するときは、3つのカテゴリの 1 つをドリルダウンします:フレームレート (計算)、メモリまたはロード時間。
Roblox には、パフォーマンスの問題を識別するためのツールがいくつかあり、これらのツールは Roblox クライアント (および Studio) にあります (以下、「Roblox」として) 、その中の一部は Studio でのみ利用可能です。直接クライアントの動作を観察することができるが、サーバーの問題を診断するためにツールを使用する必要があります。
診断ツール
ツール | 説明 | 場所 | キーボードのショートカット | 環境 |
開発者コンソール | 実時ログメッセージ、エラー、メモリ、ネットワーク、スクリプトパフォーマンスに関する詳細な情報を表示するコンソール。メモリ使用、キーサーバーの健康状況、スクリプトパフォーマンスを表示するのに便利です。クライアントまたはサーバーの MicroProfiler を起動するのにも役立ちます。 | スタジオ | F9 | ライブセッション、Studio テスト |
マイクロプロファイラー | 各フレームで実行される計算時間の多くを占めるタスクをデバッグするツール。 個々のフレームの詳細な分析を示すダンプを生成し、パフォーマンスの問題を識別するのに役立ちます。クライアントまたはサーバーでプロファイラーを実行することができます。問題が発生する側に応じて、クライアントまたはサーバーの両方で実行 | インエクスペリエンス | Ctrl Alt F6 ( ⌘ 1> ⌥1> 3> F63> ) | ライブセッション、Studio テスト |
パフォーマンス統計バー | メモリ使用、CPU、GPU、ネットワークデータの送信と受信、およびピング時間を含む基本的なパフォーマンス統解析ツールバー。 | インエクスペリエンス | Ctrl Alt F7 ( ⌘ 0>⌥0> 2>F72>) | ライブセッション、Studio テスト |
デバッグ統計 | グラフィック、物理、ネットワークトラフィック、および FPS の詳細な情報を持つオーバーレイ。 | インエクスペリエンス | Shift F1、Shift、F2、1> Shift 1>、3> F4 3>、6> Shift 6>、9> F59> | ライブセッション、Studio テスト |
パフォーマンスダッシュボード | クライアントとサーバーのメモリ使用、クライアントフレームレート、サーバーハートビート、クラッシュレートを含む摂理チャートで、クライアントのパフォーマンスを分析するダッシュボード。パフォーマンスパターンを時評価するごとに分析するのに便利です。パフォーマンスモニタリングを参照してください。 | クリエイターダッシュボード | N/A | ライブセッション |
サーバーコンピュート
サーバーのハートビートは、すべてのエクスペリエンスで 60 FPS に制限されているため、低い値はパフォーマンスの問題を示す可能性があります。サーバーのハートビートをチェックするには:
With the 開発者コンソール - サーバージョブのタブで、 心音 行を拡大し、 ステップパーセクンド 値、 which represents the heartbeat of your experience、を確認します。
サーバー MicroProfiler で - 各フレームの長さを見て、16.67ms以上の長さを持っているフレームをいくつか見つけます。
サーバーの心音が悪くなった場合の別の症状は、パイング(通常、ping として知られる)の増加です。サーバーがタスクを完了するたびに、長くサーバーが取得するためにかかる時間(通常、パイングとして知られる)が増加します。サーバーに接続されているすべてのプレイヤーの平均パイング
クライアントコンピュート
デフォルトのクライアントのフレームレート上限は 60 FPSです。しかし、ユーザーはフレームレート上限を 240 FPSに引き上げることができます。
デバイス間でフレームレートは大幅に異なります。たとえば、高端の PC は計算問題を "ブルートフォース"できるかもしれませんが、単に不可視なフレームレートの遅れを経験するだけです。低端のデバイスでテストすると、問題がより重大であり、それゆえにより簡単に気づくことがあります。
エクスペリエンスのフレームレートをチェックするには:
クライアントで、Shift F5 を押してデバッグ統まとめを表示します。
In the Studio ビュー タブで、 統計 > 概要 を選択して、デバッグ統計を有効にします。
With the MicroProfiler , あなた can check the graph to see if the frame takes longer than 16.67 ms.
メモリ
エクスペリエンスのメモリ使用をチェックするためには、いくつかの方法があります:
- 開発者コンソールを開き、メモリ タブに切り替えます。このタブは、メモリがどのように割り当てられているかを説明します。クライアントではなく Studio を使用して、最も正確な読み取りを取得します。
- クライアントの設定メニューから パフォーマンス統計 ビューを有効にして、クライアントメモリの使用量の合計を表示します。
高いメモリ使用率は必ずしも問題を示唆するわけではありませんが、さらに調査する必要がある可能性を示唆するいくつかのインジケートがあります:
- クライアントが パフォーマンスダッシュボード に表示されるクライアントの墜落の大きな割合は、特に更アップデートと一致する突然のアップチックです。一部のクライアントの墜落率が増加することが期待されますが、クライアントの墜落率が 2-3% 以上に増加することはありません。
- ユーザーエクスペリエンスをサポートしたいデバイスでテスト中にクラッシュが発生しました。
- サーバーメモリ使用は 3GB を超えます。
エクスペリエンスのメモリ使用量の大部分は、イメージやメッシュなどのアセットをクライアントに読み込んでグラフィックスメモリでレンダリングできるようにするアセットです。在開発者コンソールで、アセットのグラフィックメモリ使用量を次のレーベルで表示できます:
- GraphicsMeshParts - メッシュによって消費されるグラフィックスメモリ。
- GraphicsTexture - テクスチャによって消費されるグラフィックメモリ。
読み込み回数
ロードタイムを確認するための内蔵ツールはありませんが、ミリ秒単位の精度は必要ないため、ストップウォッチは通常はあなたの現在のベースラインを理解するために必要なものです。 ReplicatedFirst でクライアントスクリプトを使用して、変更がどのようにロードタイ
local startTime = os.clock()
game.Loaded:Connect(function()
local loadTime = os.clock() - startTime
local roundedLoadTime = math.round(loadTime * 10000) / 10000 -- 4 桁の位置
print("Game loaded in " .. roundedLoadTime .. " seconds.")
print("Number of instances loaded: " .. #game.Workspace:GetDescendants())
end)
詳細については、Studio 設定 > ネットワーク > プリントJoin Size Breakdown を有効にして、Studio でエクスペリエンスを開始すると、上位 20 インスタンスのサイズとインスタンスタイプの割合をプリントアウトします。