cygwin の configure があくびがでるほどすっとろいので、何とか効率化できないかと考えていたが、Linux に memfs があるのだから、Windows にだってあるだろということでググッてみて発見。
日本語情報は Qsoft Enterprise Liteを使ってRAMDISKを作成 - GeekなNooblog にある。ここに書いてあるとおりにすれば、少なくとも手元の環境では問題なく使用することができることを確認した。
んで、実際にアクセスはどれくらい改善されるのかを試してみた。以下に dd で簡単に測定した結果を示す。
% ( cd /cygdrive/b ; dd if=/dev/zero of=bench.dat bs=64K count=5000; rm bench.dat ) 5000+0 records in 5000+0 records out 327680000 bytes (328 MB) copied, 0.879 s, 373 MB/s % ( cd /cygdrive/c ; dd if=/dev/zero of=bench.dat bs=64K count=5000 ; rm bench.dat ) 5000+0 records in 5000+0 records out 327680000 bytes (328 MB) copied, 14.642 s, 22.4 MB/s % ( cd /cygdrive/b ; dd if=/dev/zero of=bench.dat bs=256M count=1 ; rm bench.dat ) 1+0 records in 1+0 records out 268435456 bytes (268 MB) copied, 0.899 s, 299 MB/s % ( cd /cygdrive/c ; dd if=/dev/zero of=bench.dat bs=256M count=1 ; rm bench.dat ) 1+0 records in 1+0 records out 268435456 bytes (268 MB) copied, 4.812 s, 55.8 MB/s
グラフにしてみると、単純な書き込みのケースでしかないが、相当な差があることがわかる。
というわけでさっそくビルドで使用してみているのだが、体感としてはそれほど速くなっている気がしない。もしかして cygwin のオーバーヘッドのせいであんまり効果が得られていないのだろうか?