リソースプロファイリングリファレンス

ここでは、リソースプロファイリングデータのリファレンスを見つけることができます。

リソースプロファイリングを使用して、Kanzi アプリケーションでリソースとプレハブをロードおよびデプロイするのにかかる時間をランタイム中に測定します。

リソースプロファイリングについて詳しくは、リソースの読み込みとデプロイ時間の測定 を参照してください。

Kanzi リソースプロファイリングデータには以下が含まれます:

リソースプロファイリングコンテキスト

リソースプロファイリングコンテキストは、リソースのロードまたはデプロイメントをトリガーするコードパスを実行するスコープを表します。リソースプロファイリングコンテキストサンプラーは、サンプラーが定義されているスコープの実行がリソースのロードまたはデプロイメントをトリガーしたときに、リソースプロファイリングコンテキストを作成します。リソースプロファイリングコンテキストの期間は、対応するスコープの実行によってトリガーされたリソースのロードまたはデプロイメントの期間と同じです。

リソースがロードおよびデプロイされるスコープでは、Kanzi はリソースのロードおよびデプロイのプロファイリングコンテキストのために ResourceProfilingLoadContext と ResourceProfilingDeployContext のサンプラーを作成します。

この表は、リソースプロファイリングコンテキストの共通属性を一覧にしています。すべてのコンテキストにはこれらの属性があります。

共通属性

ディスクリプション (Description)

ContextID

リソースプロファイリングコンテキストのユニーク識別子。

識別子を使用して、コンテキストが作成されたスレッド、親コンテキスト、およびコンテキストの実行をトリガーしたスレッドを確認します。

ContextName

リソースプロファイリングコンテキストの名前。

DependenciesDuration

リソースが依存するリソースをロードしてデプロイするのに Kanzi メインスレッドがかかった時間(ナノ秒)。

Duration

Kanzi メインスレッドがリソースと、このリソースが依存するリソースをロードおよびデプロイするのにかかった時間(ナノ秒単位)。

TimeStamp

リソースプロファイリングコンテキストのスコープに入る時点。

タイムスタンプを使用して、異なるリソースプロファイリングコンテキストが互いに相対していつ作成されたかを確認します。

DependencyContexts

依存コンテキストのリスト。

この表は、プロファイリングコンテキストタイプと、共通属性に加えてそれらが持つ属性を一覧にしています。

リソースプロファイリングコンテキストとコンテキスト名

ディスクリプション (Description)

追加属性

メインループ

MainLoop

プロファイラは、Kanzi メインループのイテレーション中にアプリケーションがリソースをロードまたはデプロイする際に、このコンテキストを作成します。

MainLoopCounter - コンテキストが作成される反復。

リソース取得 ResourceAcquire

プロファイラーは、リソースの取得がリソースのロードまたはデプロイをトリガーしたときに、このコンテキストを作成します。

  • AcquireAsynchronously:

    • リソースのロードが非同期の場合、"true"

    • リソースの読み込みが同期的である場合、"false"

  • ResourceUrl - アプリケーションが取得しているリソースのkzb URL。

リソースローディング (Resource loading)

ResourceLoading

プロファイラは、アプリケーションがリソースをロードする際にこのコンテキストを作成します。

  • LoadedResourceID - 読み込まれたリソースのユニークな識別子。この属性を使用して、リソースがパージされた後に再度読み込まれる異なる機会を区別します。

  • LoadedResourceType - 読み込まれたリソースのタイプ。

    例えば、Kanzi.Material、Kanzi.PrefabTemplate、Kanzi.ResourceDictionary、または Kanzi.ShaderProgram。

  • LoadedResourceUrl - 読み込まれたリソースのURL。

  • ResourceLoadingDuration - リソースをロードするのにロードスレッドがかかった時間(ナノ秒単位)。

リソースのデプロイ

ResourceDeployment

プロファイラは、アプリケーションがリソースをデプロイする際にこのコンテキストを作成します。

  • DeployedResourceID - デプロイされたリソースのユニークな識別子。

  • DeployedResourceType - デプロイされたリソースのタイプ。

  • DeployedResourceUrl - デプロイされたリソースのURL。

  • ResourceLoadingDuration - Kanzi メインスレッドがリソースをデプロイするのにかかった時間(ナノ秒)。

匿名リソースの取得

AcquireAnonymousResource

プロファイラーは、アプリケーションがリソースIDを持たないリソースを取得する際にこのコンテキストを作成します。これは通常、リソースディクショナリを取得する際に発生します。

該当なし

リソースの非同期取得

AcquireResourcesAsynchronously

プロファイラーは、アプリケーションが複数のリソースを非同期に取得する際に、このコンテキストを作成します。

ノードプレハブリソースを非同期でロードする を参照してください。

該当なし

FinishingQueue: タスクを処理する

FinishingQueue::processTask

プロファイラは、Kanzi がリソースをロードまたはデプロイするタスクを処理する際にこのコンテキストを作成します。このコンテキストは通常、1つ以上のリソースロードまたはリソースデプロイメントコンテキストの親です。

Description - リソース読み込みタスクのインデックスとタスクキューのサイズに関する情報。

例えば、"Task index 1, queue size 2"。

プレハブテンプレートインスタンス化

PrefabTemplateInstantiate

プロファイラは、プレハブテンプレートのインスタンス化がリソースのロードまたはデプロイメントをトリガーしたときに、このコンテキストを作成します。

Description - プレハブインスタンスのルートノード。

例えば、"Node root: Screen"。

プレハブテンプレートノードインスタンシエーション

PrefabTemplateNodeInstantiate

プロファイラは、プレハブテンプレート内のノードのインスタンス化がリソースのロードまたはデプロイメントをトリガーしたときに、このコンテキストを作成します。

Description - プレハブインスタンス内のノードの名前。

例えば、"Node name: Viewport 2D"。

ノード添付

Node::attach

プロファイラは、ノードをノードツリーにアタッチする際にリソースのロードまたはデプロイメントがトリガーされると、このコンテキストを作成します。

Description - アタッチされているノードの名前。

例えば、"Node name: Plane"。

メッセージトリガー

MessageTrigger

プロファイリングシステムは、メッセージトリガーの処理がリソースのロードまたはデプロイメントを引き起こす場合に、このコンテキストを作成します。

Description - トリガーメッセージのソース。

例えば、"Message source: Button 2D"。

アプリケーションプロセスデプロイメントキュー

Application::progress
DeploymentQueue

プロファイラーは、Application:: progressDeploymentQueue 関数の実行がリソースのロードまたはデプロイメントをトリガーしたときにこのコンテキストを作成します。このコンテキストは常にメインループコンテキストの子です。

該当なし

アプリケーションプロセスデプロイメントキューオーバーライド (デフォルト)

Application::progressDeployment
QueueOverride(default)

プロファイラーは、Application::progress DeploymentQueueOverride 関数の Kanzi 実装の実行がリソースのロードまたはデプロイメントをトリガーしたときに、このコンテキストを作成します。

該当なし

ロードキュータスクの完了を待機中

WaitingLoadingQueue
TaskCompletion

プロファイラーは、アプリケーションが取得しているリソースがロードスレッドの1つによってロードされており、メインスレッドがそのロードスレッドのロード完了を待たなければならない場合に、このコンテキストを作成します。

該当なし

リソースプロファイリングデータサンプル

リソースプロファイリングデータサンプルには、プロファイルされたリソースに関連するプロファイリング情報の概要が含まれており、リソースが取得、ロード、およびデプロイされるリソースプロファイリングコンテキストへの参照が含まれています。

リソースプロファイリングデータファイルの "ResourceProfilingDataSamples" セクションで、すべてのリソースプロファイリングデータサンプルのリストを見つけることができます。リソースプロファイリングデータのログ記録 を参照してください。

リソースプロファイリングコンテキストの ContextID 属性を使用して、リソースプロファイラがリソースプロファイリングコンテキストを作成するスレッド、親コンテキスト、およびコンテキストの実行をトリガーしたスレッドを確認します。リソースプロファイリングコンテキスト を参照してください。

この表は、リソースプロファイリングデータサンプルの属性を一覧にしています。

アトリビュート (Attribute)

ディスクリプション (Description)

DeploymentDuration

リソースをデプロイするのにかかった時間(ナノ秒)

LoadingDuration

リソースの読み込みにかかった時間(ナノ秒)

ResourceID

リソースプロファイリングデータサンプルのユニーク識別子

ResourceType

プロファイルされたリソースのタイプ

ResourceUrl

プロファイルされたリソースのURL

Success

Kanzi がリソースの読み込みに成功したかどうか

AcquireContext

アプリケーションまたは Kanzi がリソースを取得したリソースプロファイリングコンテキスト

LoadingContext

Kanzi がリソースをロードしたリソースプロファイリングコンテキスト

DeploymentContext

Kanzi がリソースをデプロイしたリソースプロファイリングコンテキスト

これは、スクロールビューの例 の City メッシュのリソースプロファイリングデータのサンプルです。

"DeploymentDuration": "43838400",
"LoadingDuration": "1473400",
"ResourceID": "217505936",
"ResourceType": "Kanzi.Mesh",
"ResourceUrl": "kzb://scroll_view/Mesh Data/City",
"Success": "true",
"AcquireContext": {
    "AcquireAsynchronously": "true",
    "ContextID": "216087856",
    "ContextName": "ResourceAcquire",
    "DependenciesDuration": "0",
    "Duration": "9000",
    "ResourceUrl": "kzb://scroll_view/Mesh Data/City",
    "TimeStamp": "3750800"
},
"LoadingContext": {
    "ContextID": "241268536",
    "ContextName": "ResourceLoading",
    "DependenciesDuration": "0",
    "Duration": "1475600",
    "LoadedResourceID": "217505936",
    "LoadedResourceType": "Kanzi.Mesh",
    "LoadedResourceUrl": "kzb://scroll_view/Mesh Data/City",
    "ResourceLoadingDuration": "1473400",
    "TimeStamp": "3764700"
},
"DeploymentContext": {
    "ContextID": "241265456",
    "ContextName": "ResourceDeployment",
    "DependenciesDuration": "43118600",
    "DeployedResourceID": "217505936",
    "DeployedResourceType": "Kanzi.Mesh",
    "DeployedResourceUrl": "kzb://scroll_view/Mesh Data/City",
    "DeploymentDuration": "719800",
    "Duration": "43839600",
    "TimeStamp": "59705500",
    "DependencyContexts": [
        { ... }
}

関連項目

リソースの読み込みとデプロイ時間の測定

リソース (Resources)

ノードプレハブの使用

スクロールビューの例