リソースを並列でロードする¶
ユーザーがマルチコアプロセッサを備えた環境で 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 を参照してください。