资源剖析参考

您可以在此找到资源剖析数据参考。

使用资源剖析测量运行期间花费了多长时间在您的 Kanzi 应用程序中加载和部署资源和预设。

要了解有关资源分析的更多信息,请参阅 测量资源的加载和部署时间。

Kanzi 资源分析数据包含:

  • Resource profiling contexts for the Kanzi Resource Manager 主线程 ("Resource manager main thread") 和加载线程 ("Resource manager loader thread N")。请参阅 资源剖析上下文。

  • 资源分析数据样本 ("ResourceProfilingDataSamples")。请参阅 资源剖析数据样本。

资源剖析上下文

资源分析上下文表示执行代码路径的范围,该路径触发资源加载或部署。当定义采样器的范围的执行触发资源加载或部署时,资源分析上下文采样器会创建一个资源分析上下文。资源分析上下文的持续时间与由相应范围的执行触发的资源加载或部署的持续时间相同。

在加载和部署资源的范围内,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 处理加载或部署资源的任务时,剖析程序创建此上下文。此上下文通常是一个或多个资源加载或资源部署上下文的父级。

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)

当执行 Kanzi 的 Application::progress DeploymentQueueOverride 函数触发资源加载或部署时,剖析程序创建此上下文。

不适用

等待加载队列任务完成

WaitingLoadingQueue
TaskCompletion

当应用程序正在获取的资源正由其中一个加载线程加载,并且主线程需等待加载线程完成加载任务时,剖析程序创建此上下文。

不适用

资源剖析数据样本

资源剖析数据样本包括与被剖析资源有关的剖析信息摘要,包括对资源被获取、加载和部署的资源剖析上下文的引用。

您可以在资源分析数据文件的 "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)

使用节点预设

滚动视图示例