并行加载资源¶
当用户在具有多核处理器的环境中运行您的 Kanzi 应用程序时,Kanzi 会自动使用多个 CPU 核心将 kzb 文件中的 GPU 资源加载到 RAM 中。
由于在加载过程中最大量的数据由 GPU 资源处理,资源的并行加载显著提高了应用程序的加载时间。
Kanzi 并行加载的 GPU 资源包括所有类型的纹理、着色器和网格。要将这些资源从 RAM 部署到 GPU 内存并加载预设模板,Kanzi 始终使用主线程。请参阅 图像和纹理最佳实践、着色器最佳实践、网格最佳实践。
在 Kanzi 中,您可以在 Kanzi 应用程序向用户显示项目中使用的预设资源字典之前加载它们。例如,您可以创建一个加载屏幕,让用户在 Kanzi 在后台加载应用程序其余部分的资源字典时看到。
请参阅 异步加载节点预设资源。
最佳加载线程数因平台而异。使用适合您平台的最佳加载线程数时,您可以预期 Kanzi 应用程序的启动和完全加载时间都会减少。
设置加载时使用的内核数量¶
在应用程序代码中,使用应用程序框架配置或资源管理器 API,您可以设置应用程序要在加载 GPU 资源时使用的内核数量。
要设置您的应用程序在加载资源时使用的内核数量,请在 Application::onConfigure 函数的应用程序代码中:
// Set loadingThreadCount to the number of cores in the processor
// of your target device.
// For example, to use all four cores of a four-core processor,
// set the value to 3, to use only two cores, set the value to 1.
configuration.loadingThreadCount = 3;
您可以在应用程序代码中的 Application::onConfigure 函数或 application.cfg 中设置应用程序的加载首选项。请参阅 LoadingThreadCount。
禁用并行加载¶
要禁用资源的并行加载,请将 ApplicationProperties::loadingThreadCount 设置为 0。当您禁用并行加载时,Kanzi 仅使用主线程加载资源。当您禁用并行加载时,Kanzi 不会分配内存管理器。
configuration.loadingThreadCount = 0;
请参阅 LoadingThreadCount。