Mac OS X Snow Leopardレポート集となる
【レポート】話題のユキヒョウを追う「Snow Leopard、ココに注目」(1)
【レポート】話題のユキヒョウを追う「Snow Leopard、ココに注目」(2)- 64bit時代の到来
【レポート】話題のユキヒョウを追う「Snow Leopard、ココに注目」(3) - 互換性の謎を解く
【レポート】話題のユキヒョウを追う「Snow Leopard、ココに注目」(4) - 64bitカーネルを試す
もあわせてお楽しみください。

Snow Leopardでは、SafariやMailなど標準装備のアプリケーションの多くが64bit対応を果たした。コマンド群もその例に漏れず64bit化され、Leopard時代のPowerPCバイナリとi386バイナリ(いずれも32bit)という組み合わせから、x64とi386という組み合わせへと変更された。fileコマンドで/bin/usr/binなどのディレクトリにあるコマンドを確認すれば、スクリプトやシンボリックリンク以外のほぼすべてがx64とi386の2アーキテクチャ(コマンドによってはPowerPCバイナリを加えた3アーキテクチャ)に対応していることがわかる。

標準装備のコマンドも、スクリプトで記述されているものを除く大半が64bit化された

その結果、Core 2 Duo以降の(EM64T/Intel 64拡張の)64bit CPUを搭載したマシンでは、標準装備のコマンドはすべて64bitモードで実行されるようになった。カーネルやTerminalを32bitモードで起動してもコマンドに含まれる64bitコードが実行されるため、lipoコマンドで64bitコードを取り除くなどの特殊な作業を実施しないかぎり、64bitアプリケーションとしてのパフォーマンスが発揮されることになる。

64bit化の影響がパフォーマンス面にどの程度生じているか、echoによる文字出力をfor文で10万回ループするだけの簡単なシェルスクリプトを使い、Snow LeopardにコピーしたLeopardに収録のbash(32bitバイナリ)とで比較してみた。結果は下表の通りで、カーネルの動作モードやTerminalの設定など他の条件がまったく同一であるにもかかわらず、Snow Leopardに収録のbashのほうが高速という結果を得られた。体感できるほどの差ではないが、64bit化の恩恵はシェル/コマンドのレベルにまで浸透していると考えてよさそうだ。

■表:10万回ループするシェルスクリプトの結果(timeコマンドで測定)
OS bashのバージョン バイナリ種別 real user sys
Leopard 3.2.17 32bit 0m2.692s 0m2.076s 0m0.313s
Snow Leopard 3.2.48 64bit 0m2.263s 0m1.852s 0m0.295s