このページでは

プロダクション・クオリティ

UIでプロダクションクオリティのモーションを実現する方法:

  • UIをプレビューしてFPSのリフレッシュレートを確認する。
  • UIコードをプロファイルして、遅さ、応答性の悪さ、スタッタリングの原因を見つけます。

FPSリフレッシュレート

一般的なルールとして、アニメーターはレンダリングエンジンが一貫した60フレーム/秒(FPS)のリフレッシュレートを達成できるように努めます。60 FPSとは、各フレーム間に約16ミリ秒の処理があることを意味し、これには描画プリミティブをグラフィックスハードウェアにアップロードするために必要な処理も含まれます。

アニメーションのフレーム/秒(FPS)リフレッシュレートは、Design モードのツールバーのFPS フィールドに表示されます。

FPSレートを向上させるために、アプリケーション開発者は以下を行う必要があります:

  • 可能な限り非同期、イベントドリブンプログラミングを使用する。
  • 重要な処理にはワーカースレッドを使用する。
  • 手動でイベントループを回さない。
  • ユーザー・エクスペリエンスに悪影響を与えるフレーム・スキップを避けるため、ブロッキング関数内で1フレームあたり数ミリ秒以上使わない。

デバイス上でのUIのプレビューについての詳細は、PreviewQt Quick UIs on devicesを参照してください。

UIコードのプロファイリング

UIコードのプロファイリングには QML ProfilerQt Creator を使って、UI の典型的なパフォーマンス問題の原因を見つけることができます。例えば、UIが遅かったり、反応しなかったり、もたついたりするかもしれません。一般的に、このような問題は、あまりにも少ないフレームであまりにも多くのJavaScriptを実行することによって引き起こされます。すべてのJavaScriptはGUIスレッドが続行できるようになる前に戻らなければならず、GUIスレッドが準備できていない場合、フレームは遅延またはドロップされます。

一般的に、UIのどこに時間が費やされているかを知ることで、潜在的に存在する問題領域ではなく、実際に存在する問題領域に焦点を当てることができます。

どのバインディングが最も頻繁に実行されているのか、あるいはアプリケーションがどの関数に最も時間を費やしているのかを判断することで、問題箇所を最適化する必要があるのか、あるいはパフォーマンスを向上させるためにアプリケーションの実装の詳細を再設計する必要があるのかを判断することができます。プロファイリングを行わずにコードを最適化しようとすると、大幅なパフォーマンス改善ではなく、ごくわずかな改善にとどまる可能性が高いです。

How toも参照してください Qt Quick UI の設計Qt Quick UI の設計 Qt Quick UI の設計QML アプリケーションのプロファイリングも参照してください。

Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.