SysStats Monitor の問題修正版がリリースされました

ご利用いただいているみなさまには、大変ご迷惑をお掛けしておりましたが、先日、
【お詫び】SysStats Monitor2.1の不具合について - The iPhone Development Playground
にて報告した問題を修正したバージョン2.1.1が、本日、リリースされました。

同じようなことが起きないよう、気を引き締めて参りますので、今後とも、よろしくお願いいたします。

>SysStats Monitor2.1 has an problem

Last night, SysStats Monitor 2.1 was released in AppStore. However an problem was found, which any process names was not shown in the process list view.

I already submitted the bug fixed version as 2.1.1 to Apple.
And could you suspend update this app until 2.1.1 will be released.

Let me tell you further that iPad version and free version of this app, SysStats Lite, does not have this problem, so you can use normally.

I am afraid it may be inconvenient, but please wait a little longer.

【お詫び】SysStats Monitor2.1の不具合について

昨晩、SysStats Monitor 2.1をAppStoreにリリースしましたが、こちらの手違いにより、プロセス一覧画面で、プロセス名が表示されないという不具合があることが判明しました。

すでに、当該不具合を修正したバージョン2.1.1を、Appleに申請しましたので、リリースまで、しばらくお待ちいただければと思います。
あと、できれば、2.1.1がリリースされるまで、アップデートを控えていただけると助かります。

尚、この不具合は、iPad版と、無料版であるSysStats Liteでは発生しておりませんので、そちらは問題なくご使用いただけます。

以上、みなさまにはご迷惑をお掛けしますが、よろしくお願いいたします。

iTunesのファイル共有機能を使えるようにしてみました

SysStats Monitorでは、次のバージョンで、iTunesのファイル共有機能をサポートするようにしてみました。

ファイル共有機能がどういうものなのかについては、以下の記事がわかりやすいと思います。

iWork for iOS:iTunes のファイル共有について

iPadのこととして書かれていますが、iOS4からは、iPhoneでも同じようにできますね。

アプリ側はどういうことするかというと、Info.plistの"Application supports iTunes file sharing"をYESにするだけです。これによって、iTunes経由でアプリのDocumentsディレクトリとコンピュータ間でファイルをコピーすることができるようになります。

SysStats Monitorの場合は、保存しているデータは少ないので、この機能を入れるメリットはあまりなく、試験的な意味合いで入れてみたという面も、正直なところあります。
結局のところ、再起動履歴が保存されているsqliteファイルのバックアップ/リストアが可能になるという、地味な機能追加となっています。

将来的には、もう少し何か意味のあるデータのやり取りができるようになればいいなと考えています。

ただ、1つ、気になる問題もあります。壊れたデータがリストアされてしまうと、アプリが起動できなくなったりすることもありうるわけで、ユーザのみなさんにも注意していただく必要があるかなと思います。

自分が使っているCPU使用率とメモリ使用量を表示している理由

iPhone 4 PERFECT GUIDE』(ソフトバンククリエイティブ社刊)の201ページに、SysStats Liteを紹介していただいてます。

ソフトバンク クリエイティブ:『iPhone 4 PERFECT GUIDE』紹介アプリのリンク集

iPhone 4 PERFECT GUIDE (パーフェクトガイドシリーズ)

iPhone 4 PERFECT GUIDE (パーフェクトガイドシリーズ)

タイトルは「iPhone4」となっていますが、実際には3GSにも共通な、iOS4の新機能が一通り説明されているので、3GSユーザの方にも有意義な内容になっていると思います。
(私も、この本を読んで、GarageBandを使わなくとも、iTunesだけでオリジナル着信音を作る方法を知りました)

あと、SysStats Liteが自分のメモリ使用量とCPU使用率を表示しているという、細かい機能に注目して取り上げていただいたことが、特に、うれしいですね。
この場を借りて、御礼申し上げます。

ただし、この自分のメモリ使用量とCPU使用率を表示する機能は、他のシステム情報表示アプリケーションにはないものなので、みなさんには、あまり馴染みがないものかもしれません。ご紹介いただいたこともあり、ちょうどいいタイミングなので、これらの値の使い方を、少し詳しく説明してみたいと思います。

注: SysStats Liteとして説明していますが、いずれもSysStats Monitorにもそのまま当てはまる内容です。

CPU使用率

以下の2つの画像は、いずれも、SysStats LiteのスクリーンショットからCPU使用率の部分を抜粋したものです。
「(このアプリ)」と書かれている下の数値(仮にXとします)が、SysStats Lite自身のCPU使用率を表し、その左側の数値(仮にYとします)が、システム全体を表しています。
その場合、概ね、

Y - X ≒ [バックグラウンドプロセスのCPU使用率]

ということになります。

前者は、システム全体(Y)とSysStats Liteの使用率の数値(X)の差が小さいので、バックグラウンドプロセスのCPU使用率がのCPU使用率低めであることを示しています。

反対に後者は、差が少ないので、バックグラウンドプロセスのCPU使用率高めであることを示していますので、何か負荷の高い処理が実行されている可能性があります。ホームボタンをダブルクリックして、「最近使ったアプリケーション」を表示させ、任意のアプリを終了させることで、解消することがあります。
*1

メモリ使用量

こちらは、SysStats Liteのスクリーンショットからメモリ使用量の部分を抜粋したものです。
「このアプリの使用量」の数値は、SysStats Lite自身が使用しているメモリサイズです。

ここで、以下の2つのサイズとその合計値に着目してみてください。
(単位: MB)

空きメモリサイズ このアプリの使用量 合計
スクリーンショット前者 22.6 9.0 31.6
スクリーンショット後者 13.7 16.4 30.1

SysStats Liteは、バックグラウンドに常駐させないように設定されています。ホームボタンをクリックした時に、プロセスが終了しますので、「このアプリの使用量」は、そのときに、そのときに解放される予定のものです。
前者のケースでは、
「現在22.6MBの空きがあり、SysStats Liteが9.0MB使用しているが、SysStats Liteを終了すれば、それらの合計値(31.6MB)の空きメモリがある状態になる。」
ことが想定されます。
そう考えると、この両者の状態には、あまり差がないということが言えると思います。*2


SysStats Liteが自分のメモリ使用量とCPU使用率を表示しているのは、このように、もう少しシステムの状態を詳しく把握できるようになればいいかなと思ったことが、大きな理由です。
また、ちょっと古い話ですが、以下のような状況に遭遇したこともきっかけになっています。

待ち受け状態のiPhoneが熱くなったときの対処例 - The iPhone Development Playground

各バックグラウンドプロセスのCPU使用率とメモリ使用量が取得できれば、もちろん必要ない機能ですが、公開APIでそれらを取得する方法が見つかっていないので、このような形で実現しました。

iPhoneがもっさりしてきたと感じた時は、CPU負荷の問題であることも多いので、再起動などする前に、SysStats Monitor/SysStats Liteでも確認することで、何か原因が見つかることもあります。
興味がある方は、ぜひ、お試しください。

*1:iPhone SDKをインストールしている場合は、Instrumentsというユーティリティに内蔵されているActivityMonitorツールを使用することで、個々のプロセスのCPU使用率を見ることができます。

*2:SysStats Liteで、プロセス一覧や、ヘルプページを表示させると、「このアプリの使用量」が増加し、空きメモリが減ることがあります。

不要なプロセスは自分で選んで終了させよう

iOS4から、一部の古い機種を除き、マルチタスキングがサポートされるようになりました。それによって、アプリの切替が速くなったのはいいですが、反面、待機しているバックグラウンドプロセスが増えたことにより、メモリ使用量が増えたという問題があります。
そんな背景から、iOS4では空きメモリが少なくなることは日常的に起こることなので、その都度再起動して空きメモリを増やすというのは効率が悪く、面倒なことです。
では、iOS4からサポートされた、"First App Switching"は、どうでしょう?
ホームボタンのダブルクリックで、「最近使ったアプリケーション」のアイコンリストを表示してくれます。

すでにご存知の方も多いと思いますが、このアイコンには、「アプリの切替または起動のためのショートカット」以外に、アイコンの長押し後表示される"-"をタップすることで、アイコンを削除するとともに、そのアプリのプロセスが存在していれば終了するという機能を持っています。

せっかく用意されている機能なのに、残念ながら、自分でプロセスを選んで終了させるのを面倒だと感じる方も多いようです。でも慣れてくれば、どれを終了させればいいのか見当がつくようになるので、それほどの手間ではないと思います。特に、コンピュータに詳しい上級ユーザの方であれば、難なくこなせることでしょう。

ここでは、SysStats Monitorを、この「最近使ったアプリケーション」のアイコンリストと組み合せることで、終了させると効果があるプロセスの見当をつける方法を紹介してみたいと思います。

注:
今回は3GSでテストしています。他の機種には当てはまらないこともあります。
プロセスのメモリサイズは、そのアプリの使用状況によってことなるので、常に、ここで示した通りになるわけではありません。

システムの状態を確認する

動きが重いなどの異状を感じた場合、とりあえずSysStats Monitorを起動してみましょう。例えば、以下のような状態であれば、かなりメモリが逼迫していますね。

以下のようなプロセスが、バックグラウンドに存在しているようです。


プロセスを終了させてみる

このまま使っていても問題はないのですが、気になる場合は、不要なアプリのプロセスを終了させてみましょう。

連絡先


3MBほど、空きメモリが増えましたが、効果は薄い感じです。

Safari


37MBほど、空きメモリが増えました。これは効果がありそうですというか、織込み済みですね。
ここまで空きメモリが増えれば、ほとんどの場合充分ですが、テストのために、もう少しやってみます。

バックグラウンドに存在していなかったアプリ

ここで、バックグラウンドプロセスとして存在していなかった、Facebookを削除してみます。

ほとんど変化なしです。恐らくあまり削除する意味は無いでしょう。

Twitter for iPhone

さらに続けて、バックグラウンドに存在していたTwitterを削除してみます。

7MBほど、増えましたが、効果は中途半端な感じですね。

終了したプロセスを確認する。

最後に、この間に終了されたプロセスを確認してみましょう。

ここまでの操作で終了したアプリのプロセスが表示されていますね。

注: 上記の一連の操作の間、SysStats Monitorが起動されたままになっていることが前提です。


こんな感じで調べてみることで、自分なりのプロセス終了パターンを見つけられると思います。
興味がある方はお試しください。