次のリストには、MicroProfiler のカテゴリに基づく共通タグのリストがあります。これらのタグを理解すると、エクスペリエンスで問題のあるコードを識別するのに役立つことがあります。テーブルには、タグラベル、説明、パフォーマンスのヒントが含まれています。これらのヒントは、パフォーマンスを改善し、エクスペリエンスを最適化するためのヒントです。
AI/ナビゲーション
ラベル | 説明 | パフォーマンスのヒント |
---|---|---|
ラスタータイル | 通常、パス検索のリクエストに使用されるナビゲーションタイルを更新します。通常、これらのタイルを更新する必要があることにより、計算パスがフォローされます。メインスレッドの NavigationJob/pre処理を実行します。 | 通路検索タイルの無効化を減少することで、通路が再計算が必要になることがあります。これは、ナビゲーション不可能なパーツが移動するためです。 |
パスを計算 | 通常、rasterizeTile 後にパスを計算します。 | ComputePath コールの数と世界の拡張を減少させます。多くのエージェントが開始/終了することを期待している場合は、パスを複数のエージェントに再使用してください。 |
プリプロセス/getPrimitivesOverlapping | 各パスファインドタイルの世界のジオメトリを収集し、パスファインドスレッドによって実行するラスタリングタスクをスケジュールします。 | パーツの数を減らします。 |
アニメーション
ラベル | 説明 | パフォーマンスのヒント |
---|---|---|
シミュレーション/ゲームStepped | ゲーム関連オブジェクトの処理、例えば Humanoids 、 Animations 、心拍回帰コールバック | |
シミュレーション/ゲーム/ステップレガシー | Humanoid 状態変更と movement.Called ステップヒューマノイドは、サーバーで今 (並列バージョン) | NPC に Humanoid 状態を無効にするか、Humanoid.Died または Humanoid.Running などのステートを減少する。ラダー状態は、1>Class.Humanoid.Died1> または 4>Class.Humanoid.Running4> などのステート変更と同じです。コールバックを状態変更のような < |
シミュレーション/ゲームStepped/stepAnimation | Animators は、現在プレイ中のアニメーションでステップフォワードします。 | このステップのワークロードを減少するには、Animators またはアニメーションジョイントの数を減少することができます。コールバックの数をアニメーションイベントに減少するようにコールバックの数を減少することができます。コールバックの数を減少するには、Class.AnimationTrack. |
シミュレーション/ゲームStepped/RunService.Stepped | Class.RunService.Stepped イベントに接続された関数を実行します。 | このイベントに関連する関数の量またはワークロードを減少します。ディライや交換の高価な計算を検討してください。複数のフレーム間で計算を拡張することを検討してください。 |
オーディオ
ラベル | 説明 | パフォーマンスのヒント |
---|---|---|
サウンド | オーディオ処理: 場所、エフェクト、ボリュームなど | |
開発者タグ_サウンド | インメモリサウンド: 通常、メモリに入るほど短いサウンドです。通常、1つのショットで終わる fx、長い形式の音楽ではありません。 | 短いサウンドを使用してください。 |
開発者タグ_ストリーミングサウンド | stream/StreamingSounds: これは、ディスクからストリームされる大きな音です。通常、長い形式の音楽ファイルです。 | 長い音を使用してください。 |
ネットワーキング
ラベル | 説明 | パフォーマンスのヒント |
---|---|---|
ネットパケット受信 | ネットワークパケットを受信します。複数のオブジェクトまたはイベントがレプリケートされている場合、このステップは長くなります。 | オブジェクトやイベントを少なく複製する。 |
レプリケータ/プロセスパケット | モーション、イベントの呼び出し、プロパティの変更など、ネットワークパケットのコンテンツを処理します。 | オブジェクトの複製数またはサイズを減少するか、これをインクリメントステップで行います。マップサイズが大きくなると、これはより大きなマップがより多くのオーバーロードアクティビティを持つようになるため、マップサイズが大きくなる可能性があります。 |
バンドウィドウを割り当て、Senders/Dispatch 物理学者とタッチSenders | エクスペリエンス内のアクティビティに関するデータを送信します。 | 移動オブジェクトと/またはタッチの量を減少させる。次のセクションを参照してください。 |
バンドウィドを割り当て、送信者/ディスパッチストリームジョブを実行する | 「ストリーミング」機能にある特定のクライアントに対応する特定の領域を送信します。 | 最小とターゲットのストリーミング範囲を減少します。 |
バンドウィドウを割り当て、送信者/ディスパッチデータ送信者を実行する | プロパティの変更、リモートイベント、ヒューマノイドの状態変更、アニメーション開始/停止を送信します。 | データモデルにレプリケートされた変更の数を減少する |
Replicator SendClone | 地形データをクライアントに送信します。 | 地形の変更量やサイズを減少させる。 |
ModelCompleteness Mega Job | サーバーのみ:完全性は内部のコンセプトです。モデルが完全に送信されると、モデル完全性イベントが発生します。 | インスタンスを追加または削除します。 |
デシリアルパケット | 低レベルネットワークパケット処理。Replicator ProcessPackets の準備を行います。 | 更新を少なくする。 |
レンダリング
ラベル | 説明 | パフォーマンスのメモ |
---|---|---|
準備する | メインスレッドから情報を集計し、レンダリングに使用されるさまざまなデータ構造を更新します。これはシミュレーションスレッドをブロックするため、できるだけ小さくなります。 | 下のラベルを参照してください。 |
準備/パス3dAdorn | オブジェクト上のテキストラベルなど、様々なオブジェクトの飾りをレンダリングします。このステップには、オブジェクトが表示されているかどうかを判断するためのレイキャストが含まれます。 | Class.BillboardGui|BillboardGuis 、Humanoid 名前/ヘルスラベルなどの可視なオブジェクトの数を減少する |
準備/パス2d | 2D UI のレンダリングを準備します (プレイヤーと Roblox UI の両方)。 | UI 要素の量または複雑さを減少します。 |
準備/更新/更新InvalidParts | プロパティが変更されたまたは追加されたパーツを更新します。 | 世界のプロパティ変更量を減少させます。スクリプトが大きなオブジェクトプロパティのセットを更新する場合、フレーム間でそれらを分解します。 |
準備/更新/準備/更新InvalidatedFastClusters | 通常、Humanoids をレンダリングするために使用される「FastClusters」を準備します。サブマーカーは、パーツ、ベクトル、およびベクトルのサイズを指定します。 | オブジェクトが Class.Humanoid|Humanoids でない場合、「人間形」を使用することは避けてください。これは、FastClusters がはるかに多くのメモリを使用するため、ドローの呼び出しを短縮するために使用されるべきではありません。 |
Prepare/UpdatePrepare/ダイナミックパーツを更新 | Class.Humanoid|Humanoids 、車両、および他の移動インスタンスの位置を更新します。 | Class.Humanoid|Humanoids または車両の数または複雑さを減少する。同じ素材と色のパーツをユニオンまたはメッシュパーツに結合することで、これに役立つことがあります。 |
Prepare/UpdatePrepare/updateInstancedClusters | インスタンスレンダリングを使用する静的 геоメトリを準備します(パーツとメッシュパーツ)。「クラスター」と「インスタンス」のラベルは、更新された番号を表示します。 | より少なくのメッシュとマテリアルのバリエーションを使用します。同様の外観を持つオブジェクトを使用して、クラスターを作成できます - サイズ、色、素材。 |
実行 | 実行と発行された命令。 | 以下のレーベルを参照してください。 |
Perform/FillGuiVertices | UI レンダリング。バッファーを UI の角度で満たします。「GUI count」ラベルは、レンダリングリストの要素の数を示します。 | コストが高い場合は、使用していないときに UI の量を減少させ、正しく隠されていることを確認することで、更新される UI の量を減少させます。 |
Perform/Scene/queryFrustumOrdered | 見えないオブジェクトがレンダリングされないように frustum のキャーリングを適用します。 | 高コストがある場合、多くの要素があります。たとえば、1つのメッシュが多くの詳細を持つより、複数の小さな個々の部品よりも大きなメッシュを使用してください。 |
/ステージ/計算ライトパフォーマンス | カメラの近くの照明の計算。 | 照明の計算時間を減少するために、ライトソースの数を操作するか、カメラを移動することで時間を節約できます。 |
Perform/Scene/computeLightingPerform/LightGridCPU | Updates the voxel lighting, which is used in Voxel and ShadowMap モード, and at quality levels below 4 in Future mode. | チャンクのオクペンションを更新するのに長すぎますか? 低解像度のジオメトリを使用して、パーツの数を減少させたり、パーツをアンカーしたり、部品を固定したりしてください。他のサブマーカーが長すぎる場合は、照明を最小限に抑え、オクペンションを無効にするためのシェーディングを使用してオブジェクトを固定します。 |
Perform/Scene/computeLightingPerform/ShadowMapSystem | シャドウマップを更新します。クオリティレベルが 4 以下の場合、または Lighting.Technology が Voxel に設定されている場合に実行されません。 | 照明が Future に設定されている場合、ShadowMap またはライト数を減らすことができます。Light.Shadows および 1> Class.BasePart.CastShadows1> を使用して、より重要なインスタ |
Perform/Scene/Glow、ColorCorrection、MSAA、SSAO、SSAApply を実行する | Post-Processing レンダリング。 | ポスト処理の効果を減少する。通常、これは重要ではありません。 |
パフォーム/ステージ/UI | UI レンダリング。Id_Screen には、使用されたバッチ、素材、および三角形の数にラベルがあります。 | 表示可能な UI 要素の数を減少させることができます。CanvasGroups を使用すると、メモリ使用量の増加に対して役立つことがあります。 |
Perform/Scene/UpdateView/updateParticles, updateParticleBindings | パーティクルの位置と境界を更新します。 | Class.ParticleEmitter|ParticleEmitterters 、エミッション率、ライフタイムなどの数を減少させます。エミッターの移動を制限します。 |
Id_オペーク | 透明値 0 のシーン内のパーツ。 | |
透明なID | 透明値が 0 以外のシーンのパーツ。 | 一部の透明度の使用を減少 (0 以外の値)。 |
Id_デカール | シーンのデカール。 | |
実行/プレゼント | 以前のフレームを描画するのをGPUが完了するのを待ちます。実際、Render コマンドをGPU に渡します;低レベルのグラフィックス資源に対応します。 | 場景の全般雑さを減少します。このステップが長時間になると、GPU によって制限される可能性があります。 |
Perform/Present/待ちまで完了 | GPU が前のフレームをレンダリングするのを待ちます。 | これが一般的に発生する場合、表示されるものの量が多すぎます。FRM はこれをバランスに役立つことがありますが、高いままになると、より少なく詳細を使用してください。 |
スクリプト
ラベル | 説明 | パフォーマンスのヒント |
---|---|---|
Render/PreRender/fireBindToRenderSteppedCallbacks | Class.RunService:BindToRenderStep() を通じて、ステップをレンダリングする機能を実行しています。 | スクリプトで RunService:BindToRenderStep() を使用して、できるだけ少なくの作業を行うことを確認してください。 |
Render/PreRender/RunService.RenderStepped | Class.RunService.RenderStepped イベントに接続された関数を実行します。 | 似ています BindToRenderStep 、このイベントを使用する機能はできるだけ少なく作業してください。 |
待っている橋渡しスクリプトの仕事 | スクリプトを待ちます。フレームワークを使用しています。 | このステップには、実行時スクリプトのバッチを実行するための実行時予算があり、あなたが実行時スクリプトを多く持っている場合や、実行時に長いランタイムを持つスクリプトを多く持っている場合は、このステップは複数の |
LuaGC | Lua のゴミコレクションサイクル。ラベルは、合計所有量とディスアロケートされた量の両方についてメモリの估計を提供します。 | プールライアのテーブルや他のコレクタブルオブジェクト、または一時的なテーブルやストリングを作成することを減少しようとします |
Heartbeat/RunService.Heartbeat | Class.RunService.Heartbeatevent.Talk に接続された関数をシミュレーションとスクリプトのコンタクトに実行します。現在の説明は、一般的なため、間違っている可能性はありません | RunService.Heartbeat に接続されている関数の量またはワークロードを減少します。 |
シミュレーション
ラベル | 説明 | パフォーマンスのヒント |
---|---|---|
配布された物理オーナー | サーバーまたはクライアントがパーツなどの特定のインスタンスに対する権限を持っているかどうかを決定します。 | 配布された物理オーナーシップ。 |
シミュレーション/アセンブル | 物理エンジンに使用される接続されたオブジェクト (アセンブル) のツリーを更新します。 | 共同作業の数を減少する。 |
シミュレーション/物理SteppedTotal/物理Stepped | 物理シミュレーションを実行します。 | 物理的にシミュレートされたボディの量と複雑さを減少させます。 |
シミュレーション/物理SteppedTotal/物理Stepped/スペースフィルタ/filterStep | シミュレーションアイランドを更新し、ネットワーク所有権、ローカルシミュレーションを設定します。島は、独立してシミュレートできるパーツのグループで、インタラクティンググループではありません。 | ネットワークの所有者を頻繁に設定しないでください。グループのパーツを互いに十分に遠くに保つことで、それぞれ別々にシミュレートできます。 |
シミュレーション/物理SteppedTotal/物理Stepped/worldStep/stepContacts | オブジェクト間のコンタクトを更新します。 | 同時に衝突するボディの数を減少するか、より単純な衝突ボックスを使用します。キューブは複雑なメッシュよりも優れています。 |
シミュレーション/物理SteppedTotal/物理Stepped/worldStep/stepWorld または stepWorldThrottled | コネクター、浮力、Humanoids などの物理式に関するパラメーターを解決します。エンジンがオーバーロードされ、Humanoids などのリアルタイムのアセンブリのみをシミュレートできない場合、一部のステップがstepWorldThrottled | 次の 3つのフェーズに基づいて、時間がどこに行くかによります: stepContacts: stepContacts の広義テスト。ソルバーステップ:時間を統合し、衝突を検出し、他の制限を更新します。Broadprice: アセンジェンシーの位置を更新し、可能に衝突する狭いフェーズペアを検出します。 |
NotifyMovingAssemblies | プリミティブが眠っている時間を追跡します。 | |
シミュレーション/物理SteppedTotal/物理Stepped/interpolateNetworkedAssemblies | このネットワークの親によって制御されていないアセンブルをインターポールします。 | このピアにパーツのネットワーク所有者を設定して、これを減少させます。これは通常、他の場所で物理ワークを行う必要があるため、より多くの物理ワークが実行されることになります。 |
シミュレーション/ハンドルFallenParts | Workspace/FallenPartsDestroyHeight の下に落ちたパーツを削除します。 | 破壊高を下げるか、落下するパーツの数を減少させます。 |
心音/心音内/workspaceOnHeartbeat/更新ビジュアルスリープ | NotifyMovingAssemblies の 2 番目の部分。 | |
Heartbeat/RunService.Heartbeat | Class.RunService.Heartbeatevent.Talk に接続された関数をシミュレーションとスクリプトのコンタクトに実行します。現在の説明は、一般的なため、間違っている可能性はありません | Class.RunService.Heartbeat に接続された関数の量またはワークロードを減少します。 |
ワールドステップ/ステップコンタクト | 物理シミュレーションのステップをスケールして、複数のコンタクトを一度に実行します。 | 衝突するオブジェクトの数を減少します。 |
ソリューバッチ | 物の動きのバッチを解決する物理シミュレーションを助けます。 | |
メカニズムインタープラン | InterpolateNetworkAssemblies に役立つ。 |
UI
ラベル | 説明 | パフォーマンスのヒント |
---|---|---|
レンダリング/プレレンダリング/UpdateInput | ユーザーが前のフレームから入力した場合、すべてのユーザーの入力関連イベントを更新し、ファイアを起動します。 | ユーザーの入力に関連するイベントが発生するときです。入力を取得するときにできるだけ多くの作業を直接行うことは重要です。入力に対して最小限の処理を行い、大規模な計算を別のスレッドにプッシュオフしてください。 |
Render/PreRender/TweenService | Class.TweenService を使用してオブジェクトをツイーン中、および TweenSize または TweenPosition などの完了コールバックを呼び出します。 | TweenService を使用してオブジェクトの数を減らし、コールバックができるだけ少なく作業します。 |
Render/PreRender/UpdateUILayouts | UI 要素の位置とサイズを更新します。 | Class.UILayout など、動的にサイズ変更または位置変更される UI 要素の量を減少する。 |
Heartbeat/TweenService | サーバーでは、TweenService によってオブジェクトがトリミングされます。クライアントでは、これはプレレンダリングステップで行われます。 | Class.TweenService によって減少するオブジェクトの数。 |