iPhone 版の Skype は常駐させてはならない

iPhone (iOS 4.0) 用の Skype がダウンロード可能である。このバージョンの SkypeiOS 4.0 のマルチタスク機能を活用して、バックグラウンドで動作するような仕組みになっている。

しかし、まだこの Skype は CPU 使用に関する工夫と最適化が不十分のようである。バックグラウンドで動作することを許可された iPhone 用アプリは、当然、バックグラウンドにあるときは、CPU 時間をできるだけ使わないように工夫してプログラミングしなければならない。しかし挙動を見ると、Skype は、特に何もしていないときでも iPhone の CPU 時間を大量に消費しているように見える (バックグラウンドで通話中の場合に CPU 時間を消費しているというのは正当であるから理解できる。しかし Skype の場合は本当に何もしていなくても、待ち受けしているだけで、ものすごくたくさんの CPU 時間を食う)。どれくらいひどいかというと、iPhone 4 で試したところ、何もしていない状態でと平気で 2 日間くらいバッテリーが持つのに、Skype をバックグラウンドで起動しているだけで、5、6 時間でバッテリーが切れてしまうくらいひどいのである。
iOS 4.0 のマルチタスク機能では、一度起動したマルチタスク対応のアプリは、明示的に終了しなければプロセスが削除されず、ずっと動作したままになる。普通のマルチタスク対応アプリは、プロセスごとサスペンドされて CPU 時間は一切消費しなくなるが、Skypeネットラジオ等のアプリだけは、CPU 時間を消費する。ネットラジオのアプリでも、まともにプログラミングされているもの (NPR Player など) は、ラジオを聞いていないときではほとんど CPU を消費しない。しかし Skype だけは大量に消費する。これは推測であるが、Skype は待ち受けするために、常にいくつかのコネクションをスーパーノードとの間で維持する必要があり、それを休みなくバックグラウンドで処理しようとするために、たくさん CPU 時間を常時消費しているのではないかと思われる。だから、Skype を、ほとんど発信のためだけにしか使わないと決めている人は、iOS 4.0 では、Skype に用が無くなったら毎回こまめに終了する癖を付けなければならない。また、上記のようなバッテリー上の理由で、Skype を今のところ iPhone で着信のために使うというのは、常に充電可能な環境である場合以外は、非現実的であると思う。さらに、Skype をバックグラウンドで起動していると、フォアグラウンドの操作が若干重くなり、ストレスを感じるので、やはり、まだバックグラウンドモードの Skype のソフトウェアは発展途上であるといえる。
なお、Skype をバックグラウンドで起動していても、なぜか CPU 時間を全く消費しないときもある。どのような場合に CPU 時間を大量に継続的に消費し、どのような場合には正しく節約しているのか、というのは、まだよくわからないが、挙動を見ていると、バックグラウンドのまま、回線を 3G から Wifi に変えたり、また Wifi から 3G に変えたり、あるいは、3G を使っているがよく圏外になったりするようなときに、CPU 時間をたくさん Skype が使うように思える。また、一度 CPU 時間をたくさん使うようになったら、その後ずっと使ってしまうようである。たぶん、スーパーノードを探してコネクションを張るためのプログラムの一部にバグがあるのだろう。