Linux Tips | |
プログラムをi686に最適化するには 北浦訓行 |
「i386用」となっているRPMは、x86系CPUを搭載しているPCのほとんどで利用できる。しかし、i386用は最大公約数的なものであり、最新のCPUの機能を十分に活用しているとはいえない。そこで、SRPMからi686に最適化したRPMファイルを作成し、それをインストールする手順を紹介する。i686に最適化したからといって必ずしも体感速度が向上するわけではないが、数値演算を多用するプログラムなどは処理時間が短くなる可能性がある。
今回は、OpenOffice.orgをi686に最適化してみる。使用したディストリビューションはFedora Core 2だ。Fedora Core 2のFTPサイトからFedora Projectが作成したOpenOffice.orgのSRPMファイルをダウンロードする。Fedora Core 2が採用しているのは、OpenOffice.org 1.1.1で、ファイル名はopenoffice.org-1.1.1-4.src.rpmだ。
ダウンロードしたファイルを適当なディレクトリに保存し、rpmbuildコマンドでRPMファイルを作成する。その際に、「--target i686」というオプションを付ける。これが、i686に最適化したRPMファイルを作成する指定だ。ちなみに、x86系のCPUで指定可能なオプションには、以下のようなものがある。
オプション
|
対応CPU
|
i386 | i386およびその互換CPU |
i486 | i486およびその互換CPU |
i586 | Pentium、MMX Pentiumおよびその互換CPU |
i686 | Pentium Pro、Pentium II、Pentium III、Pentium4、Celeronなど |
k6 | K6、K6-2、K6-III |
athlon | Athlon、Athlon MP、Athlon XP |
x86_64 | Opteron、Athlon64、Xeon(EM64T) |
rootになって以下のコマンドを実行すると、i686に最適化したRPMファイルが作成される。
# rpmbuild --rebuild --target i686 openoffice.org-1.1.1-4.src.rpm |
OpenOffice.orgは非常に大きなプログラムなので、RPMファイルの作成には長い時間が必要となる。1GHzのCeleronで実行したところ、14時間以上かかった。また、リビルドにはディスクにかなりの空き容量が必要だ(7GBの空きがあるシステムでリビルドに成功)。
RPMファイルは、/usr/src/redhat/RPMS/i686というディレクトリに作成される。
# cd /usr/src/redhat/RPMS/i686 |
RPMファイルは、以下のようにインストールする。ファイル名に「debuginfo」と入ったRPMファイルも作成されるが、これはインストールする必要はない。また、使用したシステムでは一部のファイルがコンフリクトしているというエラーメッセージが表示されたため、--forceオプションを付けてアップデートした。
# rpm -Uhv --force openoffice.org-1.1.1-4.i686.rpm openoffice.org-i18n-1.1.1-4.i686.rpm openoffice.org-libs-1.1.1-4.i686.rpm |
Linux Tips Index |
Linux Squareフォーラム Linux Tipsカテゴリ別インデックス |
|
- 【 pidof 】コマンド――コマンド名からプロセスIDを探す (2017/7/27)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。 - Linuxの「ジョブコントロール」をマスターしよう (2017/7/21)
今回は、コマンドライン環境でのジョブコントロールを試してみましょう。X環境を持たないサーバ管理やリモート接続時に役立つ操作です - 【 pidstat 】コマンド――プロセスのリソース使用量を表示する (2017/7/21)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示する「pidstat」コマンドです。 - 【 iostat 】コマンド――I/Oデバイスの使用状況を表示する (2017/7/20)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、I/Oデバイスの使用状況を表示する「iostat」コマンドです。
|
|