エンジニアコラム

世間によくあるWindows CEに対する疑問   

エンジニア・コラム

高根 英哉 さん [ コムラッド 代表取締役・マイクロソフト認定MVP ]

第1回:Windows CEは遅いのか?

Windows CEの大スター伊藤さんから引き継ぎ、2009年1月から5回分のコラムを担当させていただきます。私は現場でよく話題になるWindows CEに関するさまざまな疑問に、自分なりの視点で意見を述べていきたいと思います。


初回に取り上げる疑問は、みなさんもよく耳するであろうWindows CEは本当に遅いのか?というものです。早い遅いは感覚で語られることもあり、また、比較論であっても、条件が一致していない場合が多く、「本当はどうなのか?」という疑問が常に残ります。そのところをもう少し掘り下げてみたいと思います。


まず、組み込みOSとはいえ、Windows CEは、Windows Vistaなどと同様のアーキテクチャで開発され、共通で使用されるモジュールも多数存在します。そのために、組み込みOSとして身軽ではないという一面を持っているのは確かです。当然、どの組み込みOSより多機能であることがWindows CEの身上ですから、これは利点と欠点の表裏一体ということになりますが、それゆえに遅いのではないかと危惧する声があるわけです。しかし、 Windows CEがWindows Vistaなどと決定的に違う点は、Windows CEは各種OS機能を選択できることであり、不要なOS機能はどんどん省くことができます。こうして、用途目的にあわせたOSにカスタマイズし、 footprintを必要最小限にすれば、それなりに身軽なWindows CEが完成するはずです。それでも他の組み込みOSに比較して大きめになる傾向にありますが、これは搭載メモリの調整の範囲内ではないかと思われます。つまり、身軽ではないがゆえに遅いという節は、正しいOSのカスタマイズと適切なメモリ搭載で改善されるはずです。


もう一つの遅い可能性として、Windows CEはコンポーネントの集合体ゆえ、細かいタスクの切り替えが頻繁に発生します。前段の理由同様に、それゆえに、優れた多機能性を実現できているわけですが、頻繁なタスクの切り替えは確かに処理速度に影響を与えます。しかし、Windows CEもバージョンアップを繰り返す中でかなり改善され、CE6.0以降ではタスクの切り替えもかなりシンプルになっています。ゆえに、現在の Windows CEではこの問題もかなり改善されているはずです。


このように遅くなりそうな理由を並べても、改善の方法は用意されており、致命傷になるとは思えません。それでも、実際にWindows CEが遅いという話はときどき耳にします。
さて、その真の理由は、実は、実機にあわせたOS開発がまともになされていないことがほとんどだったりします。タイミングのあっていないデバイスドライバや、クロックが最適化されていないチップなどなど。組み込み開発で当たり前にすべき開発が、なぜかWindows CEでは素通りされていることがよくあります。
これもWindowsという文化がもたらせたイメージの問題でしょうか?Windows CEが遅いと感じたとき、OALやデバイスドライバの中身を再検証されることをお勧めします。