東日本大震災(東北地方太平洋沖地震)からこちら、東日本では電力会社の供給能力が逼迫して、急に「節電」の掛け声が聞かれるようになった。筆者自身はコーヒーメーカーの使用を週末限定にするとか、冷蔵庫を最新の省エネ型に買い替えるといった程度のことしかできていないのだが、ソフトウェア開発者が節電のためにできることはあるだろうか?
強引にこじつけてみたが、実際問題としてOSやCPUなどがさまざまな省電力機能を備えているのだから、それらをどう活用するかは、ユーザーだけでなく開発者の問題でもある。そこで、省電力に関係がありそうな話をMSDNオンラインにでいろいろ当たってみた。
なお、以下で示す「検索結果の件数」はいずれも本稿執筆時点でのものなので、その後に変化が生じている可能性がある点は、御了承いただきたい。トピックが増えることはあっても、減ることはないはずだが。
MSDNライブラリを調べる
真っ先に思いついたのがMSDNライブラリだ。とりあえず検索ボックスで「電力」とキーワードを指定して調べてみた。1,000件を超える文書が該当したが、その大半がサポート技術情報だ。これでは「MSDNの歩き方」というよりも「TechNetの歩き方」になってしまうし、開発者向きの情報がなかなか見つからない。
MSDNライブラリ
http://msdn.microsoft.com/ja-jp/ja-jp/library/default.aspx
そこで、検索の対象を絞ってみよう。それには、検索ボックスの下にある[検索の絞り込み]リストの中から、[ソース別 :]以下にある[ドキュメントおよび記事(x)]をクリックすればよい。すると、[サポート技術情報]と[ダウンロード]は検索対象から除外される。
その結果、一気に264件にまで絞り込むことができた。これなら検索結果の一覧を目で追っていっても何とかなるだろう。図らずしも、MSDNライブラリのトピック検索について解説する結果になっている。
また、[ソース別 :]だけでなく、[トピック別 :]でプラットフォームをキーにして絞り込む方法もある。特定のOSだけを対象にしたい場合は、この方法あるいは前述した[ソース別 :]と組み合わせて絞り込む方法を使えばよい。対象プラットフォームは以下の通りだが、[ソース別 :]で絞り込んだ結果次第では、このすべてが出てこない場合がある。
- Windows Embedded
- Windows XP Embedded
- モバイルおよび組み込み開発
- Windows Server
- .NET 開発
- Windows Vista
- Windows 7
例えば、先に[ドキュメントおよび記事]で絞り込んだ結果に対し、さらに[.NET開発]で絞り込みをかけると、結果は36件になった
検索結果の一覧を見てもらうとわかるが、OSあるいは周辺機器の省電力機能に関連する情報を取得する方法などが多く含まれているようだ。ソフトウェアの側からこうした情報を取得して状況を的確に認識することで、OSやハードウェアが備えている省電力機能を活用できるだろう。
ちなみに、[.NET開発]ではなく[モバイルおよび組み込み開発]だと、検索結果は13件となった。モバイルや組み込みの用途では、通常のPCと比べると電力供給能力に限りがあり、それだけ電力消費についてもシビアだから、これは重要な情報と言えそうだ。
ライブラリ以外ではどうか?
そこで、つい出来心で(?)MSDNライブラリ以外のコンテンツについても調べてみることにした。まず、「Code Recipe」である。省電力機能を活用するためのサンプルコードが手に入れば、その分だけ楽ができる。
ところが、キーワード「電力」では何もヒットしなかったのでガッカリ。そこで気を取り直して「電源」に変えてみたところ、今度は14件が合致した。もっとも、この数字は「プラットフォーム」「プログラムミング言語」「主要なテクノロジ」「主要なトピック」の合計であり、実際には画面の中央に出てきた2件だけのように思われる。
ともあれ、C#とVisual Basicでそれぞれ、WindowsのAPIを使って電源の状態を検知するためのサンプルがあることがわかった。これは使えそうだ。電源の供給元がわかれば、例えば「ピークシフトのため、日中はAC電源で動作していると警告を出して、バッテリ駆動に切り替えるように促す」なんていうことができそうだ。
そこで最後に、「フォーラム」で省電力機能に関連するやり取りが行われているのではないないかと見込んで検索してみた。その結果は、キーワード「電力」で6件、キーワード「電源」で140件だった。おお、意外とあるではないか。もっとも、「未回答の質問」ではあまり役に立たないかもしれないが。
フォーラム ホーム
http://social.msdn.microsoft.com/Forums/ja-JP/categories
ちなみに、TechNetオンラインにも以下のようなトピックができているので、何か参考になることがあるかもしれない。
マイクロソフト製品群における停電対策、節電機能
http://technet.microsoft.com/ja-jp/gg703325