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アーキテクチャ)に対応していることがわかる。
その結果、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 |
---|---|---|---|---|---|
3.2.17 | 32bit | 0m2.692s | 0m2.076s | 0m0.313s | |
3.2.48 | 64bit | 0m2.263s | 0m1.852s | 0m0.295s |