【Qtデバイスの高速起動】Part4: ハードウェアについて

この記事は The Qt BlogFast-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 です:

  • NXP i.MX 6 Quadcore プロセッサ、1GHz で動作
  • 1GB DDR3 RAM
  • 8GB eMMC

右側は Toradex Apalis i.MX 6 Computer on Module です:

  • NXP i.MX 6 Quadcore プロセッサ、1GHz で動作
  • 1GB DDR3 RAM
  • 4GB eMMC

両者はまったく同じ設定のカーネル、ブートローダー、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 で起動しました。

この違いはどこからきたのでしょう?

  • ボード自体の起動が Toradex モジュールの方が速い
  • カーネルがより早い段階で eMMC にアクセスできることが起動時間の短縮につながっている

というわけで、組み込みデバイスの設計時には、ハードウェアの選択も慎重に行ってください。もし死ぬほど起動時間を高速化する必要があるのであれば、高速なメモリとメモリバスと最適化されたブートローダーとカーネルと、ロードするすべてのライブラリをサクッと読み込めるパワフルなチップを選択すべきでしょう。それ以降はソフトウェアの設計次第です。いくらハードウェアを最適化しても、ソフトウェアの設計によってはすべてが無駄になってしまいます。詳細は以前のブログ記事を参照してください。

もっと詳しい話を聞きたい方は、10月18日から3日間サンフランシスコで行われる Qt World Summitfast-boot of Qt based devices という私のセッションに是非ご参加ください。みなさんとの高速起動の議論を楽しみにしています。

※訳注:これは2016年のイベントになります。以下のセッションの動画をご覧ください。

https://www.youtube.com/watch?v=f94V7FuYhu0


Blog Topics:

Comments