日記帳

日記です。

cygwin 上でのプログラムのビルド時間は RAMDISK で高速化するか?

cygwin 上でいろいろなプログラムをビルドしているとそのあまりの遅さによりお腹の中がコーヒーで一杯になりたぷたぷしてしまいます. 少しでも高速化したいので $TMP やビルドするワークディレクトリを RAMDISK にしたらどの程度ビルド時間が変るか試してみました.

とりあえずビルド対象として SDL をビルドしてみます. 規模的に大きすぎず小さすぎず.

測定する範囲は以下の通り.

コマンドにするとだいたい以下のような手順になります.

$ tar xvfz SDL-1.2.13.tar.gz
$ pushd SDL-1.2.13
$ sh configure --prefix=/usr/local
$ make
$ make prefix=/tmp/SDL-1.2.13-root/usr/local install
$ popd
$ pushd /tmp/SDL-1.2.13-root
$ tar cvf ~/mingw-SDL-1.2.13-1-i386-cygwin.tar .
$ bzip2 -9 ~/mingw-SDL-1.2.13-1-i386-cygwin.tar 
$ popd

とりあえず ThinkPad X40 で測定してみます.

CPU
intel Pentium M 1.0 GHz
MEMORY
DDR SDRAM 1.25GB
HDD
1.8inch IDE 40GB
OS
Windows XP SP3
実時間(秒) HDDとの比較(%)
work:HDD tmp:HDD 530.792 100%
work:HDD tmp:RAMDISK 523.234 98.58%
work:RAMDISK tmp:RAMDISK 503.659 94.89%

ワークディレクトリと $TMP を RAMDISK にすると約5%ビルド時間が縮まりました.しかし8分50秒が8分23秒になってもコーヒーを一杯飲むのには十分な時間なのであまり意味がないような…

別のPCでも測定してみます.以下の仕様のデスクトップPC. 今時のPCとしても特に高性能でもなく,ミドルローくらいでしょうか?

CPU
AMD Turion64 MT-40 2.2 GHz
MEMORY
DDR SDRAM 2GB
HDD
3.5inch IDE 250GB
OS
Windows XP SP3
実時間(秒) HDDとの比較(%)
work:HDD tmp:HDD 264.703 100%
work:HDD tmp:RAMDISK 263.719 99.63%
work:RAMDISK tmp:RAMDISK 253.734 95.86%

ほぼ同じ傾向.X40に比べてCPUが速くなったけどHDDも少し速くなったので比率的に大差ない結果になっているようです.

結論

cygwin 上でのプログラムのビルド時間は RAMDISK を使ったとしても5%程度しか高速化しません. cygwin 遅い問題の対策としては下手な小細工するよりも高速なCPUのPCを使いましょう. あるいは cygwin 使うのを辞めるとか.