リソースを並列でロードする

ユーザーがマルチコアプロセッサを備えた環境で Kanzi アプリケーションを実行すると、Kanzi は自動的に複数のCPUコアを使用して、kzbファイル内のGPUリソースをRAMにロードします。

ロード中に最も多くのデータがGPUリソースによって処理されるため、リソースの並列ロードはアプリケーションのロード時間を大幅に改善します。

GPUリソース Kanzi が並行してロードするものには、すべての種類のテクスチャ、シェーダー、メッシュが含まれます。これらのリソースを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 を参照してください。

関連項目

画像とテクスチャのベストプラクティス

メッシュベストプラクティス

シェーダーのベストプラクティス

リソース管理 (Resource management)

アプリケーション開発

アプリケーション構成リファレンス