この記事は The Qt Blog の Fast-Booting Qt Devices, Part 4: Hardware Matters を翻訳したものです。
執筆: Risto Avila, 2016年8月30日
みなさんこんにちは!
これまで Qt デバイスの高速起動に関して 1.5 秒でブートします、Qt アプリケーションの最適化、システム全体の最適化 の3つ記事を書きました。今回はハードウェアの選択、特に同じ CPU が載っていてもアーキテクチャの違いによって高速起動に与える影響が大きいことを説明したいと思います。この比較のために、同じ NXP i.MX6 Quadcore CPU を搭載した2つのボードを用意しました。1つはソフトウェア開発向けのボードで、もう片方は製品にも使えるようなシステム・オン・モジュールのボードです。
それではちょっとしたバトルを開催しましょう!
左側は NXP SABRE i.MX6 Quad Development Board です:
右側は Toradex Apalis i.MX 6 Computer on Module です:
両者はまったく同じ設定のカーネル、ブートローダー、Qt のクラスタのデモが動いています。
https://www.youtube.com/watch?v=V-a6KO7SK2g&feature=youtu.be
Toradex の Computer on Module の勝ちは明らかで、起動時間の差は 19%(294ms) もありました。これまで紹介してきた NXP SABRE では起動から最初の Qt Quick のフレームの表示までに 1560 ms というとてもよい結果でしたが、Toradex の方がさらに速く、1266 ms で起動しました。
この違いはどこからきたのでしょう?
というわけで、組み込みデバイスの設計時には、ハードウェアの選択も慎重に行ってください。もし死ぬほど起動時間を高速化する必要があるのであれば、高速なメモリとメモリバスと最適化されたブートローダーとカーネルと、ロードするすべてのライブラリをサクッと読み込めるパワフルなチップを選択すべきでしょう。それ以降はソフトウェアの設計次第です。いくらハードウェアを最適化しても、ソフトウェアの設計によってはすべてが無駄になってしまいます。詳細は以前のブログ記事を参照してください。
もっと詳しい話を聞きたい方は、10月18日から3日間サンフランシスコで行われる Qt World Summit の fast-boot of Qt based devices という私のセッションに是非ご参加ください。みなさんとの高速起動の議論を楽しみにしています。
※訳注:これは2016年のイベントになります。以下のセッションの動画をご覧ください。
https://www.youtube.com/watch?v=f94V7FuYhu0