2010年11月27日土曜日

iPadのマルチタスクを試してみた

久々です。折角なんでタイムリーな話題ということで先日公開されたばかりのiPad向けiOS4のマルチタスクについて簡単に試してみました。

どこかの記事でみたのですが、iOSは真の(?)マルチタスクを実現していて、既存のアプリケーションの動作には殆ど影響を与えないということのようでした。裏を返せば、バックグラウンドに回ったアプリは(通常のマルチタスクとは違って)実行され続けることはない、とも読めます。この辺りはアプリの対応状況にも大きく左右されると思いますが。

バックグラウンドで実際に処理されない場合のことを考えると、VMwareのようにメモリのスナップショット的なものを作ったりして実行状態を保持しているんではないかと思います(が、後で試した感じではどうも違うようです…)。単純に考えるならメモリ内になりますよね。ってことで、とりあえず沢山起動してみることにしました。

まずは最初の状態。メモリの使用状況はこんなもんなようです。







続けて一杯になる手前までアプリを起動しました。やはりアプリが増えるに従って順当にメモリの空きが減っていきます。







この時に起動していたアプリもついでに。一応そこそこリソースを使いそうなものを中心に恥ずかしくなさそうなアプリを選んでみました。













予想通り、メモリの使用量は増えているのに、CPUの使用量は増えていません。現在使用中のアプリしかCPUを使用していないためと思われます。

試しに更にアプリを立ち上げまくってみましたが、メモリが完全に一杯になることはありませんでした。不思議なことに、立ち上げ続けるとメモリの使用量は減ったりもします。HDDの使用量が増えている気配もありません。

沢山アプリを起動したあとに最初の方に起動したアプリを実行してみると最初の状態からアプリが開始されることがあります。完全に実行中の状態を保持できるわけでもなさそうです。

本当にバックグラウンドで処理が動いていないかも確かめてみました。DropBoxで画像のアップロードを開始し、直後にホーム画面に戻り、そして一定時間後に再度DropBoxを起動しました。DropBoxの場合はバックグラウンドでもアップロードを行うようで、戻った時点では既にアップロードが完了していました(サイズの大きな画像で実験)。GoodReaderのWebDownloadで同様に試してみると、GoodReaderに戻った際にタイムアウトエラーが発生します。どうもバックグラウンドでは処理していないような感じです。

まとめると、こんな感じです。
・どんだけアプリを起動してもCPUの使用量はそんなに影響がない(但し、動作としてはややもっさりする)
・メモリを使い切ってもHDDを使用したりはしない
・あまり沢山起動するとアプリの実行中情報が失われることがある

マルチタスクとはいえ、一般的なマルチタスクとは違って完全にはアプリの実行中状態が保存されない点は注意が必要です。途中で他の処理にうつる際には適度にアプリを終了した方がよさそうです。

やはりマルチタスクになるとiPadのメモリの少なさが残念に思われてなりません。3Gモデルなので新型が出ても買い換えられず…。Softbankで下取りプランとかやらないかな?ま、一括で買ったので次は割賦で買うってこともできるんでいいっちゃいいんですが。新しいiPadの噂もちらほらありますが、実際にどう変化するのか楽しみです。

0 コメント: