您可以在此找到资源剖析数据参考。使用资源剖析测量运行期间花费了多长时间在 Kanzi 应用程序中加载和部署资源与预设件。要详细了解资源剖析,请参阅测量资源加载和部署的时间。
Kanzi 资源剖析数据包括:
"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
|
当资源采集触发资源的加载和部署时,剖析程序创建此上下文。 |
|
资源加载 (Resource loading) | ResourceLoading
|
当应用程序加载资源时,剖析程序创建此上下文。 |
|
资源部署 | ResourceDeployment
|
当应用程序部署资源时,剖析程序创建此上下文。 |
|
获取匿名资源 | 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::progressDeploymentQueue
|
当执行 Application::progressDeploymentQueue () 函数触发资源加载或部署时,剖析程序创建此上下文。此上下文始终是主循环上下文的子上下文。 |
- |
应用程序处理部署队列重写(默认) | Application::progressDeploymentQueueOverride(default)
|
当执行 Application::progressDeploymentQueueOverride () 函数的 Kanzi 实现触发资源加载或部署时,剖析程序创建此上下文。 |
- |
等待加载队列任务完成 | WaitingLoadingQueueTaskCompletion
|
当应用程序正在获取的资源正由其中一个加载线程加载,并且主线程需等待加载线程完成加载任务时,剖析程序创建此上下文。 | - |
资源剖析数据样本包括与被剖析资源有关的剖析信息摘要,包括获取、加载和部署资源的资源剖析上下文参考。
在资源剖析数据文件的部分 "ResourceProfilingDataSamples"
,您可以找到所有资源剖析数据样本的列表。请参阅记录资源剖析数据。
使用资源剖析上下文的 ContextID
特性找到资源剖析程序创建资源剖析上下文的线程、父上下文和触发执行该上下文的线程。请参阅资源剖析上下文。
此表列出了资源剖析数据样本的特性。
特性 (Attribute) | 描述 (Description) |
---|---|
DeploymentDuration
|
部署资源所花的时间(以纳秒为单位) |
LoadingDuration
|
加载资源所花的时间(以纳秒为单位) |
ResourceID
|
资源剖析数据样本的唯一标识符 |
ResourceType
|
被剖析资源的类型 |
ResourceUrl
|
被剖析资源的 URL |
AcquireContext
|
应用程序或 Kanzi 获取资源的资源剖析上下文 |
LoadingContext
|
Kanzi 加载资源的资源剖析上下文 |
DeploymentContext
|
Kanzi 部署资源的资源剖析上下文 |
这是滚动视图示例中City 网格的资源剖析数据样本。
“DeploymentDuration": “52920957", "LoadingDuration": “869380", "ResourceID": “233255432", "ResourceType": “Kanzi.Mesh", "ResourceUrl": “kzb://scroll_view/Mesh Data/City", "AcquireContext": { "AcquireAsynchronously": “true", "ContextID": “199287920", "ContextName": “ResourceAcquire", "DependenciesDuration": “0", "ResourceUrl": “kzb://scroll_view/Mesh Data/City", "TimeStamp": “107551499" }, "LoadingContext": { "ContextID": “234230448", "ContextName": “ResourceLoading", "DependenciesDuration": “0", "LoadedResourceID": “233255432", "LoadedResourceType": “Kanzi.Mesh", "LoadedResourceUrl": “kzb://scroll_view/Mesh Data/City", "ResourceLoadingDuration": “869380", "TimeStamp": “626864207" }, "DeploymentContext": { "ContextID": “234146616", "ContextName": “ResourceDeployment", "DependenciesDuration": “47990578", "DeployedResourceID": “233255432", "DeployedResourceType": “Kanzi.Mesh", "DeployedResourceUrl": “kzb://scroll_view/Mesh Data/City", "DeploymentDuration": “4930379", "TimeStamp": “647530216", "DependencyContexts": [ { ...} }