2006.01.21
ユニバーサルバイナリの軽量化
intel Mac が発売されてから、続々とユニバーサルバイナリ化されたアプリがリリースされています。ユニバーサルバイナリついては「OS X ハッキング! 」の記事が詳しいのですが、複数の異なるCPUのコードを一つのバイナリファイルに収めているので、アプリケーションをPowerPC 用 Intel 用と別々に用意して配布する必要がなくなります。
最近バージョンアップした iTunes もユニバーサルバイナリで配布されています。
% pwd
/Applications/iTunes.app/Contents/MacOS
% file iTunes
iTunes: Mach-O fat file with 2 architectures
iTunes (for architecture ppc): Mach-O executable ppc
iTunes (for architecture i386): Mach-O executable i386
複数のCPUコードが含まれる為にバイナリファイルのサイズは大きくなりますが、アプリケーション全体では画像や言語リソースが占める割合が大きいのでトータルサイズはそう大きくなりません。でも iTunes のようにバイナリファイルの元々のサイズが大きいと、ユニバーサルバイナリ化してかなり肥大してしまいます。
% ls -l
-rwxrwxr-x 1 root admin 18207060 12 21 14:18 iTunes
ファイルサイズだけでなく、必要ないものは削除してスッキリしたいなと思う私のような人も要ると思います。そういう時に使うのがユニバーサルバイナリ用のユーティリティ /usr/bin/lipo
コマンドです。このコマンドを使うと夫々のCPU向けコードを分離したり削除したりすることが出来ます。
Intel CPU 向けコードを分離したり
% lipo -extract i386 -output iTunes-i386 iTunes
% ls -l
-rwxrwxr-x 1 root admin 18207060 12 21 14:18 iTunes*
-rwxr-xr-x 1 root admin 9085268 1 21 19:16 iTunes-i386*
% file iTunes-i386
iTunes-i386: Mach-O fat file with 1 architecture
iTunes-i386 (for architecture i386): Mach-O executable i386
削除したり
% lipo -remove i386 -output iTunes-ppc iTunes
% file iTunes-ppc
iTunes-ppc: Mach-O fat file with 1 architecture
iTunes-ppc (for architecture ppc): Mach-O executable ppc
ユニバーサルバイナリが for PowerPC になって、サイズも減量
なおコマンドの詳しいオプションの説明は、man lipo で。
- 関連記事
-
- Safari に脆弱性が見つかる (2006/02/23)
- スクリプトメニューのモディファイキー (2006/02/12)
- ユニバーサルバイナリの軽量化 (2006/01/21)
- 10.4.4の新顔 Widget 達 (2006/01/15)
- Macworld '06 (2006/01/11)
Posted at 20:47 | Mac
- この記事へのトラックバックURL
- http://wildlifesanctuary.blog38.fc2.com/tb.php/34-15458dba
- この記事へのトラックバック
- この記事へのコメント
| HOME |