C
アプリケーションのパフォーマンス
アプリケーションのパフォーマンスには、マイナスにもプラスにも影響するいくつかの側面があります。以下のセクションでは、これらの側面のいくつかがどのようにパフォーマンスに影響するか、また、それらを制御する方法について説明します。
フレームバッファ戦略の選択
Qt Quick Ultraliteはシングルとダブルのバッファリング戦略をサポートし、メモリ使用量より優れたパフォーマンスの選択を提供します。シングルバッファ戦略はより少ないメモリを使用しますが、パフォーマンスのオーバーヘッドを伴うことがあります。
詳しくはフレームバッファリング戦略をご覧ください。
フォントエンジンの選択
Qt Quick Ultralite には 2 つのフォントエンジンオプションがあります:Monotype Spark フォントエンジンと Static フォントエンジンです。
Monotype フォントエンジン
- さまざまな文字を使用する国際化されたアプリケーションをよりよくサポートします。
- 正しいレイアウトを確保するためにテキストのシェーピングが必要な言語のサポートが向上。
- パフォーマンスとテキストの品質を損なうことなく、テキストのスケーリングをランタイムでサポート。
静的フォントエンジン
- 複雑なテキストを使用しないアプリケーションをより良くサポートし、フットプリントが小さい。
- 静的な事前計算データで動作するため、非常に高速なルックアップ操作が可能。
- ビルド時にフォントを処理するため、ランタイムオーバーヘッドが発生しません。
2つのフォントエンジンの詳細な比較については、機能比較表を参照してください。
ベンチマークモードの使用
アプリケーションで Benchmark モードを使用すると、アプリケーションの実行時にいくつかの主要なパフォーマンス・メトリクスを測定できます。
Benchmarkモードでは、以下のメトリクスを収集できます:
| パラメータ | パラメータ 説明 | |
|---|---|---|
| 1 | 合計フレーム数 | 記録間隔内の総フレーム数。 |
| 2 | 平均FPS | 記録インターバル中に測定された1秒あたりの平均フレーム数。 |
| 3 | 最小FPS | 録画中にキャプチャされた1秒あたりの最小フレーム数。 |
| 4 | 最大ヒープ使用量 | アプリケーションが起動してから記録された最大ヒープ使用量(バイト)。 |
| 5 | 最大スタック使用量 | アプリケーション起動時から記録されている最大スタック使用量(バイト)。 |
| 6 | 平均CPU負荷 | 記録間隔を平均したパーセンテージでの CPU 負荷。 |
Benchmark モードでは、指定された時間アプリケーションを実行し、このインターバルの 終了時に結果を表示します。
ベンチマーク・モードでは、QulPerf QML タイプを使用して、パフォーマンス・メトリクスの記録の開始と停止を行います。
詳細については、Qt Quick Ultralite Thermostat DemoおよびQt Quick Ultralite Automotive Cluster Demo を参照してください。これらのデモでは、QulPerf タイプを使用してメトリックスを収集します。
キャッシュの使用
画像やテキストをキャッシュすることで、アプリケーションのパフォーマンスを向上させることができます。
画像のキャッシュ
ImageFiles.MCU.resourceCachePolicyQmlProject プロパティを使用して、画像リソースのキャッシュ・ポリシーを選択します。
- デフォルトでは、すべてのイメージは起動時にフラッシュからRAMにロードされます。
- MCU.Config.maxResourceCacheSizeでリソース・キャッシュ・サイズを設定します。
- MCU.ConfigノードのImageFiles.MCU. resourceCachePolicyリソース・プロパティを、個々の画像リソースまたはすべての画像に対して
OnDemand。 - ImageFiles.MCU.resourceCachePolicyを
NoCachingに設定してキャッシュを無効にし、リソースをフラッシュに保持します。これには、レンダリング・パフォーマンスに若干のコストがかかる可能性があります。
注意: ImageFiles.filesQmlProject プロパティを使用して画像ファイルをアプリケーションに追加する前に、ソースファイルのプロパティを設定する必要があります。
フォントキャッシュのプライミング
アプリケーションで多くのテキストを使用すると、起動時間に大きく影響します。このような場合、ビルド時にフォントキャッシュを投入することで、起動時間を改善することができます。
注: キャッシュのプライミングは Monotype Spark フォントエンジンのみがサポートしています。
詳細については、キャッシュプライミングを参照してください。
テキストキャッシュ
Qt Quick Ultralite アプリケーションのテキストキャッシュを有効にすると、テキストレンダリングのパフォーマンスが向上します。テキストキャッシュを有効にすると、各テキスト要素のピクセルデータがキャッシュされ、描画エンジンの呼び出し回数が減ります。
テキストキャッシュ機能の詳細と有効化方法については、テキストキャッシュのセクションを参照してください。
グリフレイアウトのキャッシュ
詳細については、MCU.Config.glyphsLayoutCacheSizeを参照してください。
ハードウェアレイヤーの使用
ハードウェアレイヤーをサポートするMCUプラットフォームでは、多数のフレームバッファを使用し、これらのフレームバッファをブレンドして最終画像を表示することによって、Qt Quick Ultraliteアプリケーションのパフォーマンスを向上させることができます。ハードウェアレイヤーを使用すると、メモリフットプリントとレンダリング時間が短縮されます。
ハードウェアレイヤーの使用法の詳細については、ハードウェアレイヤーを使用してパフォーマンスを向上させるを参照してください。