次は、マイクロプロファイラの共通のタグのリストで、カテゴリに分類されています。これらのタグを理解すると、エクスペリエンスの中の問題のあるコードを特定するのに役立ちます。テーブルには、パフォーマンスを向上させるためのタグラベル、説明、およびパフォーマンスアドバイスが含まれています。
眠る
スレッドがタスクを実行していないときは、タグを使ってスレッドがどれくらい眠っていたかを示す睡眠状態に入ります。特定の時点で、ほとんどのワーカースレッドが睡眠状態にあるのは極めて一般的です。
AI/ナビゲーション
ラベル | 説明 | パフォーマンスアドバイス |
---|---|---|
rasterizeタイル | 通常、パスファインドリクエストに必要なナビゲーションタイルを更新し、それに続いて計算パスが必要になる computePath があります。メインスレッドでナビゲーションジョブ/プレプロセスをフォローします。 | これは、それらのパスが再計算が必要になる原因であるため、パス探索タイルの無効化数を減少させます。これは、移動しない非ナビゲート部分によるものです。 |
computePath | 通路を計算し、通常は rasterizeTile の後です。 | ComputePath 呼び出しの数とワールド範囲を減少させます。複数のエージェントが約似した場所から始まる/終わると予想される場合、パスの再使用を試してください。 |
preprocess/getPrimitivesOverlapping | 各パス探索タイルの世界幾何を収集し、パス探索スレッドによって実行されるレイスター化タスクのスケジュールを設定します。 | パーツ数を減らす。 |
アニメーション
ラベル | 説明 | パフォーマンスアドバイス |
---|---|---|
シミュレーション/ゲームステップ | ゲーム特定のオブジェクトの処理、例: Humanoids、Animations およびハートビートコールバック | |
シミュレーション/ゲームステップ/ステップレガシー | Humanoid 状態変更と movement.Called ステップヒューマノイドがサーバー上で現在 (並列バージョン) | NPC に状態 Humanoid を無効にしたり、減らしたりすることができます、もし持っている場合。はしご状態は無効にするのが最も重要です。呼び出しを Humanoid.Died または Humanoid.Running のような状態変更に減らす |
シミュレーション/ゲームステップ/ステップアニメーション | Animators は、現在再生中のアニメーションで前進します。 | Animators またはアニメーテッドジョイントの量を減少して、このステップの負荷を低くする呼び出し数を AnimationTrack.KeyframeReached または AnimationTrack.Ended のようなアニメーションイベントに減らす |
シミュレーション/ゲームStepped/RunService.Stepped | RunService.Stepped イベントに接続された機能を実行します。 | このイベントに接続された機能の量や負荷を減少する。高価な計算を遅延または置換することを検討してください。複数のフレームに計算を拡張することを検討してください。 |
オーディオ
ラベル | 説明 | パフォーマンスアドバイス |
---|---|---|
サウンド | オーディオの処理: 場所、効果、ボリュームなど | |
開発者タグ_サウンド | メモリ内サウンド: メモリに入るのに十分に小さい一般的な短いサウンド。通常は短い一発のFX、長い形式の音楽ではありません。 | 短い音を少し使用します。 |
開発者タグ_ストリーミングサウンド | stream/StreamingSounds: ディスクからストリームされるより大きなサウンドです。一般的に長い形式の音楽ファイルです。 | 長い音を少し使用します。 |
ネットワーキング
ラベル | 説明 | パフォーマンスアドバイス |
---|---|---|
ネットパケット受信 | ネットワークパケットを受信します。複数のオブジェクトやイベントがレプリケートされている場合、このステップに時間がかかります。 | オブジェクトまたはイベントを少なく複製する。 |
レプリケータ/プロセスパケット | モーション、イベント呼び出し、プロパティ変更などのネットワークパケットのコンテンツを処理します。 | 複製されているオブジェクトの数やサイズを減少するか、増分ステップで行います。マップサイズが増加すると、より大きなマップは全体的な活アクティビティが多くなる傾向があるため、増加する可能性があります。 |
バンド幅を割り当てて、送信者/派遣物理送信者、およびタッチ送信者を実行する | エクスペリエンスのアクティビティに関するデータを送信します。 | 移動オブジェクトやタッチの量を減らす。以下のセクションを参照してください。 |
バンド幅を割り当てて送信者/派遣ストリームジョブを実行する | 「ストリーミング」機能で、対応する特定の地域を特定のクライアントに送信します。 | 最小およびターゲットストリーミング半径を減少する。 |
帯域を割り当てて送信者/派遣データ送信者を実行する | プロパティ変更、リモートイベント、ヒューマノイド状態変更、アニメーション開始/停止を送信します。 | データモデルに複製された変更の数を減少する |
レプリケータSendCluster | 地形データをクライアントに送信します。 | 地形の変更量やサイズを減少させる。 |
モデル完全性メガジョブ | サーバーのみ: 完全性は内部コンセプトです。モデルが完全に送信されると、モデル完全性イベントが送信されます。 | 少数のインスタンスを追加または削除します。 |
デシリズパケット | 低レベルネットワークパケット処理。リプリケータプロセスパケットの準備。 | 更新を少なく送信します。 |
レンダリング
ラベル | 説明 | 性能の注意事項 |
---|---|---|
準備する | 情報はメインスレッドから収集され、レンダリングに使用されるさまざまなデータ構造を更新します。これによりシミュレーションスレッドがブロックされるため、可能な限り小さくなければなりません。 | 下の準備ラベルを参照してください。 |
準備/Pass3dAdorn | オブジェクトの上部にあるテキストラベルなどのさまざまなオブジェクトの装飾をレンダリングします。このステップには、そのようなオブジェクトが見えるかどうかを判断するためのレイキャストが含まれる可能性があります。 | BillboardGuis、Humanoid 名/健康ラベルなど、表示可能な装飾オブジェクトの数を減少する |
準備/Pass2d | 2D UI レンダリングを準備 (プレイヤーと Roblox UI の両方)。 | UI 要素の量や複雑さを減少する。 |
準備/更新準備/更新無効なパーツ | プロパティが変更または追加されたパーツを更新します。 | 世界のプロパティ変更量を減少させます。スクリプトが大規模なオブジェクトプロパティを更新する場合、フレーム間で分解します。 |
準備/更新準備/更新無効化された高速クラスター | 通常、Humanoids をレンダリングするために使用される「高速クラスター」を準備します。サブマーカーは、パーツの数、ベリーの数、ベリーのサイズを指定します。 | オブジェクトが Humanoids でないものの下で「ヒューマノイド」の使用を減らす。これは、ファストクラスターがより多くのメモリを消費するため、ドローコールを短縮するために使用してはならない。 |
準備/更新準備/更新ダイナミックパーツ | Humanoids 、車両、その他の移動インスタンスの位置を更新してレンダリングします。 | 移動する Humanoids または車両の数や複雑さを減らす。同じ素材や色のパーツを組み合わせて、ユニオンまたはメッシュパーツにすると、これに役立つ可能性があります。 |
準備/更新準備/更新インスタンスクラスター | インスタンスレンダリングを使用する静的幾何を準備します (パーツとメッシュパーツ)。ラベル "クラスター" と "インスタンス" は、更新された数を示します。 | 全体のメッシュと材料のバリエーションを少なく使用します。同じ外観のオブジェクトを使用してクラスターを作成することもできます - サイズ、色、素材。 |
実行する | 実際のレンダリングコマンドが作成され、発行されるとき。 | 下のラベルを実行を参照してください。 |
Perform/fillGuiVerticesを実行/満足する | UI レンダリング。装飾のためにバッファを UI ベクトルで満たします。「GUI カウント」ラベルは、レンダラーリストの要素数を示します。 | コストが高い場合は、使用されていないときに適切に隠されていることを確認して、UIの更新量を減少させます。 |
パフォーム/シーン/queryFrustumOrdered | 不可視なオブジェクトがレンダリングされないようにフラストム収集を適用します。 | 高コストがある場合、それは多くの要素があることを意味します。たぶん、1つのメッシュに詳細が多いのに対して、複数の小さな個々の部品よりも多くの大きなメッシュを使用します。 |
パフォーム/シーン/ComputeLightingPerform | カメラの近くで照明の計算。 | ライトソースの数を操作するか、カメラを少し移動して照明の再計算時間を短縮します。 |
実行/シーン/照明計算実行/ライトグリッドCPU | Voxel および ShadowMap モードで使用されるボクセル照明を更新し、品質レベルが 4 以下の Future モードでも使用されます。 | チャンクの占有率を更新するに時間がかかりすぎる場合は、解像度の低いジオメトリを使用したり、パーツの数を減らしたり、パーツを固定したりしてください。他のサブマーカーが長すぎる場合は、ライトの数を減らし、オブジェクトの移動とオクッパンシーの無効化に使用されないシャドウキャストジオメトリを考慮してください。 |
パフォーム/シーン/コンピュートライト/シャドウマップシステム | シャドウマップを更新しません。品質レベルが 4 以下に設定されているか、Lighting.Technology が Voxel に設定されているときに実行されません。 | 照明が Future に設定されている場合、 ShadowMap に下げたり、ライトの数を減らしたりします。Light.Shadows と BasePart.CastShadows を使用して、より重要でないインスタンスでシャドウキャストを無効にすることもできます。参照してください パフォーマンスの向上。 |
パフォーム/シーン/グロー、カラー補正、MSAA、SSAO、SSAOApply | ポストプロセスレンダリング。 | ポストプロセッシング効果の数を減らす。通常、これは重要ではありません。 |
パフォーム/シーン/UI | UI レンダリング。Id_Screen には、使用されたバッチ数、材料、および三角形の数のラベルがあります。 | 表示可能な UI 要素の数を減らす。CanvasGroups を使用すると、メモリ使用量が増加する可能性があります。 |
パフォーム/シーン/アップデートビュー/アップデートパーティクル、アップデートパーティクルバインディング | パーティクルの位置と境界を更新する。 | ParticleEmitters 、放射率、寿命などの数を減少します。放射者の動きを制限します。 |
Id_Opaque | 透明値が 0 の場面のパーツ。 | |
透明な ID_Id_Transparent | 透明度が 0 以外の場面のパーツ。 | 部分透明度の使用を減らす (0 と 1 以外の値) |
Id_Decal | シーンのデカル。 | |
実行/プレゼント | GPU が前のフレームのレンダリングを終えるのを待ち、実際に GPU にレンダリングコマンドを発行します;低レベルのグラフィックリソースを処理します。 | 一全般的にシーンの複雑さを減少します。このステップが長時間かかっている場合は、GPU に制限される可能性があります。 |
実行/プレゼント/完了まで待つ | GPU が前のフレームのレンダリングを終えるのを待ちます。 | これが一般的にたくさん起こっている場合、レンダリングされたものの量が高すぎます。FRM はこれをバランスするのを助けますが、高いままで残る場合は、詳細を少なく使用してみてください。 |
スクリプト
ラベル | 説明 | パフォーマンスアドバイス |
---|---|---|
レンダリング/プレレンダリング/fireBindToRenderSteppedCallbacks | RunService:BindToRenderStep() を介してレンダリングステップにバインドされた関数を実行しています。 | スクリプトで RunService:BindToRenderStep() を使用して機能を最小限に抑えることを確認します。 |
レンダリング/プレレンダリング/RunService.RenderStepped | RunService.RenderStepped イベントに接続された機能を実行します。 | BindToRenderStep と同様、このイベントを使用する機能はできるだけ少ない作業を行うようにしてください。 |
待機ハイブリッドスクリプトジョブ | 待機フレームを使用して待機中のスクリプトを再開します。 | このステップには、待機スクリプトの実行時予算があり、たくさんの待機スクリプトや、交付する前に長時間実行されるスクリプトがある場合、このステップで複数の実行が可能です |
ルアGC | Luau ゴミ回収サイクル。ラベルは、合計割り当てとどれくらいが割り当て解除されたかのメモリ推定を提供します。 | プールルアテーブルと他の収集可能なオブジェクトを削減するか、一時的なテーブルまたは文字列を作成するのを減らす |
ハートビート/RunService.Heartbeat | に接続された機能をシミュレーションとスクリプトコンタクトに実行します。現在の説明は間違っていないことが保証されるほど一般的です | RunService.Heartbeat に接続された機能の量や負荷を減少する |
シミュレーション
ラベル | 説明 | パフォーマンスアドバイス |
---|---|---|
分散物理所有権 | サーバーまたはクライアントが、部品などの特定のインスタンスに権限を持っているかどうかを決定します。 | 分散物理所有権。 |
シミュレーション/アセンブル | 物理エンジンで使用される接続オブジェクトのツリー (アセンブリ) を更新します。 | 作成または破壊されるジョイントの量を減少させます。 |
シミュレーション/物理SteppedTotal/物理Stepped | 物理シミュレーションを実行する。 | 物理的にシミュレートされたボディの量と複雑さを減少する。 |
シミュレーション/物理SteppedTotal/物理Stepped/空間フィルタ/フィルタステップ | シミュレーション島を更新し、ネットワーク所有権に従ってパーツを配置し、ローカルシミュレーション。島は、独立してシミュレートできるパーツの非相互グループです。 | ネットワーク所有権を頻繁に設定しないでください。部品のグループを十分に離れておき、それらを別々にシミュレートできるようにします。 |
シミュレーション/物理SteppedTotal/物理Stepped/世界ステップ/ステップコンタクト | オブジェクト間の更新連絡を行います。 | 一度に衝突する体の量を減らすか、よりシンプルな衝突ボックスを使用します。キューブは複雑なメッシュよりも優れています。 |
シミュレーション/物理SteppedTotal/物理Stepped/世界ステップ/ステップワールド または ステップワールドが制限された | 接続器、浮力、および Humanoids に関連する物理方程式を解決します。エンジンがオーバーロードされ、リアルタイムにすべてをシミュレートできないとき、いくつかのステップがスロットされる可能性があります(stepWorldThrottled)、例えば Humanoids のような「リアルタイムアセンブリ」のみがシミュレートされます。 | 次の 3 フェーズに基づいて時間がどこに行くかに依存します:stepContacts: narrow phase collision detection geometry tests。ソルバーステップ: 時間を統合して衝突および他の制約を解決 updateBroadphase: 衝突検出システムでアセンブリの位置を更新し、可能な狭いフェーズペアを見つける。 |
移動アセンブリ通知 | プリミティブがどれくらい眠っているかを追跡するのに役立ちます。 | |
シミュレーション/物理SteppedTotal/物理Stepped/interpolateネットワークアセンブリ | このネットワークのピアに制御されないアセンブリをインターポレートします。 | これを減らすために、パーツのネットワーク所有者をこのピアに設定しますが、これは通常、他の場所でより多くの物理作業が行われるようになります。 |
シミュレーション/handleFallenParts | ワークスペース/FallenPartsDestroyHeight 以下に落ちたパーツを削除します。 | 破壊高さを低くするか、破壊高さに落ちるパーツの量を減らす。 |
ハートビート/heartbeatInternal/workspaceOnHeartbeat/updateVisuallySleeping | 移動通知アセンブリの2番目の部分。 | |
ハートビート/RunService.Heartbeat | に接続された機能をシミュレーションとスクリプトコンタクトに実行します。現在の説明は間違っていないことが保証されるほど一般的です | RunService.Heartbeat に接続された機能の量や負荷を減少する。 |
世界ステップ/ステップコンタクト | 物理シミュレーションステップで多くの連絡先を一度に助けます。 | 衝突するオブジェクトの数を減らす。 |
バッチ解決 | 物理シミュレーションがオブジェクトのバッチの動作を解決するのを助けます。 | |
メカニズムインターポレーション | InterpolateNetworkAssemblies の助け。 |
UI
ラベル | 説明 | パフォーマンスアドバイス |
---|---|---|
レンダリング/プレレンダリング/アップデート入力 | ユーザーが最後のフレーム以降に入力を行った場合、すべてのユーザー入力関連イベントを更新し、発射します。 | これは、ユーザーの入力に関連するイベントが発動するときです。入力を得たときに直接多くの作業を行わないように試すことが重要です。入力に最小限の処理を行い、大規模な計算は後で発生する別のスレッドに押し出すことを検討してください。 |
レンダリング/プレレンダリング/TweenService | TweenService を使用して昇圧されているオブジェクトを更新し、TweenSize または TweenPosition に提供されたもののような完了コールバックを呼び出します。 | TweenService を使用して減少するオブジェクトの数を減らし、コールバックができるだけ少ない作業を行うようにします。 |
レンダリング/プレレンダリング/更新UILayouts | UI 要素の位置とサイズを更新します。 | UILayout によって管理されるような、動的にサイズ変更または位置調整される UI 要素の量を減少します。 |
ハートビート/TweenService | サーバーでは、TweenService で曳光されたオブジェクトを更新します。クライアントでは、代わりにプレレンダリングステップで行われます。 | オブジェクトの数を TweenService で減少させます。 |