そんなに速くないけど快適なMacBookにしておく

今更だが、最新のMacBookAirの起動時間は速い!15秒だそうだ。

ところで、自分のMacBookの起動時間は一体何秒なんだろう?計ってみた。

MacBookが起動するまでのタイムテーブル

デスクトップが表示されるまでなら53秒、ログイン項目まで完全に起動するには92秒だった。

  • 00秒後、電源ボタンを押す。
  • 03秒後、起動音ジャーンが鳴る。
  • 10秒後、画面にリンゴマーク表示される。
  • 53秒後、デスクトップが表示され、ログイン開始。
  • 92秒後、ログイン項目もすべて起動完了。
    • ターミナル・MinimumMenu・What's Up!・iTunesも起動している状態。

MacBookが終了するまでのタイムテーブル

ちなみに、終了する時のタイムテーブルも計測してみた。

  • 00秒後、システム終了ボタンをクリック。
  • 04秒後、画面表示が消えて、電源オフ。
    • Finder以外のDockに表示されるアプリケーションがすべて終了している状態において。

MacBookがスリープ復帰するまでのタイムテーブル

  • 00秒後、モニタを開く、あるいはキー操作によってスリープ解除。
  • 02秒後、デスクトップが表示される。
  • 05秒後、無線ネットワークの回復。

決して速くはないMacBookの状態

では、このような起動・終了性能のMacBookはどのような状態なのか、ちょっと詳しく見てみた。

  • 500GB、1パーティションの内蔵ハードディスク、300GB近くの空きがある。
    • 初期のswap(仮想記憶)領域は64MB。swap領域としては十分過ぎる。(笑)
    • swap領域が増えるほど、swap処理が発生する程に、操作性能は悪くなる。
    • 長過ぎるswap処理ではレインボーカーソルが回転してしまうのだ...。その間の反応はすこぶる悪い...。
    • だから、少しでもメモリを多く積んで、swap処理が発生しない環境が一番快適。
    • 初代MacBookは2GB、今は4GBのメモリだが、それでもswap処理は発生する。
    • できることなら8GBのメモリにしておきたいが、2008年白MacBookの性能は最大6GBらしい。(8GB積んだらどうなるんだろう?)
    • で、8GBメモり積んだら、swap処理はほとんどなくなるんだろうか?(8GBメモリの方の経験を伺いたいです)
    • 一方、MacBookAirでは、基盤直付けのSSDによってswap処理が超高速になり、操作性能の低下がほとんどないとのこと。
  • ハードディスクはほとんどメンテナンスしない。
    • smart情報をチェックしようが、こまめに検証・修復をしようが、ハードディスクは壊れるときは壊れる、何の前兆もなく。
    • だから、メンテよりもバックアップが大事。いつ壊れても被害を最小限にできるバックアップ環境にしておくべき。(過去数回のクラッシュ経験から)
    • 今のOSXにはTimeMachineがある。苦労最小限で最高のバックアップ環境を構築してくれるのだ。それを利用しない手はない。
    • いつの日か、TimeMachineがオンで良かったと思える日が必ずやって来る。それは今日かもしれない。
  • アプリは必要を感じた時だけアップデート。
    • アップルのソフトウェアアップデートは、常に最新バージョンにしておくように心掛けている。
    • サードパーティアプリについては、むやみやたらに最新版を追い続けると、便利だった機能が変更される場合もあるので、必要を感じたときだけアップデート。
  • デスクトップは程々に散らかっている。(28項目、1.9GB)
    • デスクトップに何も置かないのはスッキリして見た目も良い。
    • でも、せっかくのファイル操作に活用できる場所を使わないのは勿体ない。
    • 置きっぱなしは良くないが、直近の作業ファイルはデスクトップにそのままの方が使い易いと思った。
    • 作業忘れ防止や、ドラッグ&ドロップの操作はデスクトップが一番操作し易いと思った。
    • ExposéとSpacesによって、デスクトップはますます有効活用できるようになった。
  • ゴミ箱は徹底的に貯めておく。
    • ゴミ箱は、TimeMachineにバックアップされないファイル置き場と考えている。
    • むやみやたらに空っぽにしない。もしかしたら、後で使いたくなるファイルかもしれない。
    • 特に大きなファイルについては、ゴミ箱のファイルを選択して、さらにcommand-deleteすることで削除できる。
    • command-deleteは、OSX 10.6で「戻す」のショートカットだった。削除できない。
  • ログイン項目あり過ぎ。(22項目)
    • どうせあとで手動で起動するアプリなら、ログイン項目に入れてしまった方が手っ取り早い。
    • 起動中の操作に対する反応は鈍くなるが、完全に起動してしまえば軽快に操作できる。
    • 但し、うっかりすると不要になったアプリまでログイン項目に残っている場合がある。
    • 年に数回程度は、見直してみた方が良いかもしれない。
  • アプリケーションあり過ぎ。(アプリケーションフォルダ内だけでも300以上)
    • アプリケーションを多数インストールしても、起動さえしなければ操作性能に影響しないはず。
  • Dashboardは使っていない。
    • 当初は物珍しくて有効活用しようと使っていた。
    • しかし、ウィジェットのほとんどは、既存のアプリやWebページからも提供される機能なので、現在はほとんど使っていない。
    • 稀に起動しても、利用後はDash Quitで完全に終了してしまう。
    • ほとんど使わない多数のウィジェットをバックグラウンドで起動したままでは、貴重なメモリとCPU処理時間を浪費することになる。
  • 不要な言語リソースもそのまま。
    • 不要な言語リソースを削除すればHD領域は節約できるが、操作性能には影響しないはず。
    • HDの容量は500GB(300GB空き)もあるので、今は気にしない。
  • フォントを検証したことなし。
    • 検証したら警告があった。でも特に困った問題に遭遇していないので、そのまま。
  • ユニバーサルアクセス 「補助装置にアスセスできるようにする」オン。
  • 音声認識
    • 使わない機能なのでオフにしている。
    • ネイティブ・ジャパニーズ・スピーカーなので、自分の発音ではゆうことを聞いてくれないのだ...。
  • 共有しまくり(ファイル共有、プリンタ共有、Web共有、リモートログイン、リモートマネージメント)
    • 利用する時だけオンにするという考えもあるが、いざ使う時にオフで悔しい思いをしたことがあるので、頻繁には利用しないけど常時オンにしている。
    • 特にWake on Demandによって、スリープ中でも無線LAN経由でアクセスできるようになってからは、各種共有の利用価値はかなり高まった。
  • システム環境設定のその他、多数あり。(19項目)
    • あまりの多くの追加のシステム環境設定をオンにすると、操作性能は重くなる。
    • 便利な機能と操作性能の重さはトレードオフなのだ。
    • 但し、インストールしても機能をオフ(チェックボックスでオフにできる場合は)にしてあれば、操作性能に影響しないはず。
  • Dockのアニメーションあり。
    • 今時のMacBookではGPUが大活躍している。
    • DockのアニメーションごときでCore2DuoのCPUは重くならないと思う。
    • 逆にアニメーションとして動き始めることで、操作に対するリアクションが速くなり、快適な操作感として感じられそう。
  • PowerPCコード削除したことなし。
    • PowerPCコードを含むユニバーサルバイナリなアプリであっても、Intelコードが実行されていれば操作性能に影響しないはず。
    • OSX 10.6でPowerPCがサポートから外されたため、Apple提供のアプリのPowerPCコードは削除された。
    • よって、OSXのインストール容量は小さくなった。HD領域の節約効果はある。
  • OnyXメンテなし。
    • OSXのメジャーアップデート時は、むやみにメンテスクリプトを実行するのは非常に危険。(OSX10.4からOSX10.5アップデート時の経験)
    • 少なくとも、正式バージョンになってから利用するようにした方が賢い。
    • 以前は隠し機能を有効にするために利用していたが、それもSecretsでほぼ満たされるようになってしまった。
  • ブラウザのキャッシュはたまに削除することがある。(あまりにも反応が遅いと感じた時)
    • でも、Safari5になってからは削除したことはなかった。
    • そう思ってさっき削除してみたのだが、それほどの変化はなかった。
  • 再起動はソフトウェアアップデートで必要になったときだけ。通常スリープ運用。
  • 再インストールはハードディスクが壊れた時、あるいはOSXのメジャーアップデートの時。
  • dolipo 未使用
    • 当初、dolipoに大変お世話になった。(感謝です!)ブラウザの俊敏な反応に感動!した。
    • しかし、いつしかSafariFirefoxChromeも、dolipoを経由しなくても十分俊敏になってしまった気がする。
    • dolipoの機能の一部が、ブラウザ側にも搭載されたのだろうか?
    • そのうち、dolipoのページ更新のタイムラグが気になって、一時使用を中止して、現状そのまま。
  • Google Public DNS(8.8.8.8, 8.8.4.4)設定中
    • プロバイダのDNSよりも反応が良い気がしたので、そのまま設定してある。
  • OSは日本語環境
    • ネイティブ・ジャパニーズ・スピーカーの自分に英語環境は無理。
    • 英語を理解するのにモタついて時間がかかるより、日本語環境でテキパキと操作できた方が良さそう。
  • Safariのファビコンは表示あり(標準設定)
  • 起動ディスクには内蔵ハードディスクを指定(標準設定)
    • これは標準設定なので当然。
    • OSを新規インストール、あるいは復元処理した時などは起動ディスクを見失いがちになる。
    • 起動時にリンゴマークの表示まで時間がかかる時は、起動ディスクがちゃんと設定されているか確認する価値はある。

「速さ」とは?

こうして見ると、Macのスピードアップとか高速化で謳われているTipsとはほど遠い状態。(Tipsと一致している設定はわずか)
だからMacBookAirと比べて起動時間が4倍以上もかかってしまうんだ、と言われてしまいそうだが、仮にTipsどおりの設定をして起動時間が15秒に短縮されたとして、果たして自分はその環境に満足するだろうか?しばし考えてみる。
「否」
おそらく決して満足しないはず。そもそも「速さ」とは何だろう?

  • 起動処理が速くなる。
  • ネットワークの性能が向上する。
  • 操作に対するレスポンスが良くなる。

それぞれのTipsが対象とする「速さ」は様々だが、処理にかかる時間を短縮することを目指しているように見える。処理時間が短縮されることは良いことだ。異論はない。
では、仮にすべてをOSX標準設定にすれば起動時間がたった1秒になるとして、果たして自分はその標準設定を導入するだろうか?しばし考えてみる。
「否」
おそらく今のMacBookの便利設定を捨ててまで、起動時間の短縮にこだわらない。そもそも、スリープの復帰なら2秒で完了する。普段は電源をオフにすることはなく、ソフトウェアアップデートで必要な時だけ再起動している。だから今のMacBookを使っている限り、起動時間の短縮にそれほどの魅力は感じない。

では、その他諸々の処理時間の短縮ではどうだろうか。魅力を感じるだろうか?想像力を膨らませて、しばし考えてみた。
すると、自分にとって許せる待ち時間と、許せない待ち時間があることに気付いた。

許せる待ち時間
  • アプリケーションの起動中にDockでアイコンが飛び跳ねている間とか、
  • ファイルのコピー中とか、
  • ブラウザの読み込み中・ダウンロード中とか、
  • TimeMachineでバックアップ中とか、

つまり、バックグラウンドで処理中であっても、操作に対するレスポンスにそれほど影響しなければ許せる。
また、あとどれくらい処理に時間がかかるのか、フィードバックのある処理中は心穏やかで居られる。

許せない待ち時間
  • MacBookの起動中(すべてのサービス・アプリの起動が完了してCPU負荷がアイドル状態になるまでの間)とか、
  • swap処理でレインボーカーソルが回転している時とか、
  • OSのインストール中とか、

逆に処理中だと、操作に対するレスポンスが著しく低下してしまう場合、あるいは何もできない場合、それは許せない待ち時間となる。
こうして見ると、MacBookAirは許せない待ち時間を徹底的に削減していると思った。だからユーザーからの評価が非常に高いのかもしれない。


許せる待ち時間がいくら短縮されても、それほどの魅力は感じない。しかし、許せない待ち時間がそれなりに短縮されると、それは相当な魅力と感じるのだ。

レスポンスの感じ方

OS9からOSXへ移行する初期(OSX 10.2ぐらい)の頃は、OS側の最適化が不足していたり、マシンも非力(PowerPC G4の頃)だったので、絶対的な性能不足は否めなかった。そんな時は、少しでもCPUの負荷を減らす努力(アニメーションをオフにするとか、独自アイコンを利用しないとか)することで、操作に対するレスポンスを良くする効果があるかもしれない。

しかし、CPUがIntelになって以降、OS側は最適化され、マシン性能も上がりは、ほとんど不足を感じなくなった。その証拠に初代MacBookでさえ、今も現役で快適にリビングで活躍している。地デジの視聴・録画もしている。(さすがにその時はCUPフル稼働でファンの回転数は6200rpmになるけど)さらに最新の機種はGPUまでフル活用して、可能な限りCPU負荷を抑えて、高性能を低負荷で発揮できる工夫がされている。そんな時代に、操作に対するリアクションであるアニメーションを削除してしまうことは、逆にレスポンスを悪く感じさせる原因になるかもしれない。

操作に対して素早くリアクションがあるからこそ、レスポンスが良いと感じられるはず。それを無くしてしまうと、操作がどうなったかいつまで経っても感じられず、ユーザーの欲求(リアクションが欲しい)は長く満たされないのだ...。

  • 会社で上司に仕事を依頼されたら...
    • A君は、その時に問題点がいくつか思い浮かんでもグッと堪えて、「了解しました!」と返事をして、素早く席に戻り、できる作業から取りかかる。問題点は必要な時に経過報告と一緒に確認する。
    • B君は、その時に思い浮かんだ問題点をその場で詳細に確認して、実際の作業にはなかなか取りかからない。問題点がすべて解決したら、一気に作業に取りかかり、作業が完了したら報告する。

A君とB君はどちらが上司の受けが良いだろうか?物事はそんなに単純ではなく、A君タイプか、B君タイプかに明確に分けられないかもしれないが、おそらく、上司の受けはA君タイプの方が良さそうな気がする。たとえB君よりも多少時間がかかったとしても。

これと同じ理屈でレスポンスを良くしているのがGoogle Chromeだと聞いたことがある。処理全体が完了するまでの時間だけでなく、処理途中の見せ方を工夫することでユーザが感じる体感速度を向上させているらしい。起動時にはウィンドウを表示するための最小限のモジュールだけ読み込んで、とりあえずウィンドウ表示してしまい、ユーザーに起動したと感じさせる。その後、さらに必要なモジュールを必要に応じて追加で読み込むらしい。そのようなブラウザをユーザーはどのように感じたかというと、登場したばかりの頃は「爆速」などと表現されることが多かった。

車の話しになってしまうが、たった150馬力しかないアルファロメオ145が数ある市販車の中で世界で最もドキドキする、スピード感溢れる車じゃないか?と感じてしまうのも、ドライバーに伝わるエンジン音、排気音、振動、アクセルを踏んだ時の反応等々でドライバーにそう感じさせる演出をしているからなのだと。実際にはそれほどスピードが出ている訳でもなく、トルクが特に力強い訳でもないのに...。

だから、OSXで一見無駄に思える派手なアニメーションも、嫌いじゃなければそのまま残しておくことで、心地良い操作感となっているはずなのだ。AppleはそのようなGUIの操作感を作るのが本当に上手い。iPhoneiPadAndroid端末を操作してみると、その心地良さの次元の違いはすぐ体感できる。(最新のAndroid端末は使ったことないけど)

速さと利便性のトレードオフ

「速さ」には絶対的な魅力があって、「速さ」をアピールされると、それにとても価値を感じてしまう。人は速さに弱い...。しかし、「速さ」と引き換えに失っているものも多くの場合あるはずで、実際に使ってみると確かに「速い」けど、イマイチ使いにくい、と感じることもあるはず。
確かに、OSXインストール直後の素の状態では、起動も速いし、操作感も多少キビキビしているように感じる。しかし、その「速さ」にそれほどの魅力はなく、自分にとって使い易いのは数十個のメニューバー項目やシステム環境設定項目、その他様々なAppleScriptAutomatorサービスがインストールされている環境なのだ。
何か便利な機能を一つ追加するためには、それを実現するためにバックグラウンドで動くプロセスが必ず一つは必要になる。起動中のプロセスが増えれば、それは必ずCUP時間を消費し、アイドル時のCUP負荷は高くなる。そのようなプロセスの増加が操作のレスポンスを悪くしていく。
今、自分のMacBookアクティビティモニタを起動して、すべてのプロセスを数えてみると104個あった。OSXインストール直後の状態では、プロセス数は50個しかない。その差54個のプロセスが消費するCUP時間が「速さ」を失う原因である。しかし、同時に自分にとっては利便性を生む貴重なプロセスでもあるのだ。
つまり、速さと利便性はトレードオフの関係にあり、自分にとって速さ以上に魅力を感じる利便性であれば追加するべきなのである。しかし、利便性を追求し過ぎると許容できないレスポンスの低下を招く。自分にとって必要な利便性と許容できるレスポンスがバランスしている時が最も快適な環境となるはず。(速さと利便性は滅多なことでは両立できなくて、それが出来るくらいなら、とっくにAppleが取り入れているはずなのだ)

IntelのCPUが採用されてから、ハードウェアの性能はOS9当時の仮想記憶をオフにした状態と遜色ないくらいキビキビと動くようになった。また、OSX 10.6ではOS側の最適化もさらに進み、多少負荷がかかってもレスポンスはそれほど悪くならない気がする。一旦確保されるとほとんど解放されることのなかったswap領域も、不要になったらちゃんと解放されるようになった。(以前は、2GB、4GBのswap領域が一旦確保されると、再起動するまでレスポンスが良くなることはなかったのだが、今では不要なアプリケーションを終了するだけで、レスポンスが回復するようになったと感じている)

便利な機能なのに、グッと堪えて速さを優先してしまうのは、たいへん勿体ないことである。

良きに計らう利便性

小さな子供に煙草を取って来てくれるように頼むと、本当に煙草だけ持って来る。でも、ある程度の年齢になれば、煙草と一緒に灰皿やライターも持って来るようになるだろう。さらに気が利いた秘書の人なら、状況に応じてお茶も淹れてくれるかもしれない。

GUIのOS環境というのは、ある意味自分の作業をサポートする秘書みたいなものだから、秘書であるなら気が利いている方が心地良く作業できる。いくら便利な機能が多数インストールされていても、その都度指示しないと何もしてくれない環境では、ストレスが溜まるのだ。そんな秘書みたいなOS環境に、果たして出来るのだろうか?考えてみれば、実はすでに、いくつかの恩恵を受けている。

  • AutoPagerizeは、ブラウザのスクロールがページ終点に近付くと、自動的に次のページのリンク先をダウンロードして、非同期で追加してくれる。
  • TextURLLinkerは、ページ中にhttp・ttpで始まるテキストを見つけると、自動的にリンクタグに変換してくれる。

どちらもブラウザの機能拡張として有名なのもだ。そして、一度でもそれを体験してしまうと、もはやそれがない環境には耐えられなくなってしまう程の魅力がある。
一方、iPadでも、AutoPagerizeやTextURLLinkerを実現するブックマークレットを登録することは可能だが、MacBookの機能拡張とは徹底的な違いがある。それは、自動的には決して実行されないこと。ページが読み込まれたタイミングで、自分でブックマークレットをタッチして起動する必要があるのだ。一度タッチすれば、次ページはどんどん追加される。でも、別のURLに移動してしまうと、AutoPagerizeは無効になってしまう。有効にするには、再びブックマークレットをタッチする必要があるのだ。

自動か、自動でないか、この差はとてつもなく大きい。

  • Safariの機能拡張を探すとき、最初は名称に「auto」が含まれるものを中心に試すと、効率的に便利なものが見つかるかもしれない。(もちろん、autoが含まれなくても素晴らしい機能拡張はたくさんあるはずなのだが)


また、自作のAppleScriptなのだが、クリップボードを拡張するスクリプトを利用している。自分専用の使い勝手になるかもしれないが、以下のような機能がある。

以前だったら、目的にあわせて実行するスクリプトが違っていた訳だが、今では選択中の状況・アプリケーションによって、良きに計らい最適なコピーをしてくれるので、操作は常にコピーでOK。何かをするために、自らメニューを辿って事細かに指示するのは面倒だ。とりあえずコピーしておけば、自分が望む結果がクリップボードに入っている今の環境をとても気に入っている。
URLのaタグやシンタックスハイライトなhtmlを生成する機能は、OSX標準ではどこにもない。本来ならアプリケーションやWebサービスに投げて生成してもらうものだ。それがQuicksilverAppleScriptを組み合わせて、ショートカット一発で完了してしまう便利さは、「速さ」以上に十分、魅力的な利便性なのだ。