D言語でGnuplot 2

Cygwin用のgdcコンパイルしたものは、実行速度がやけに遅かったので、Windows用バイナリが作成されるようMinGW + gdc をインストールしてみた。こちらでもちゃんと、popen も pclose も使えたのでやっぱり dmd の設定が悪かったのかなぁ。せっかくの機会だったので、Windows上の各コンパイラで作った実行ファイルの実行速度をtimeコマンドを使って測ってみた。このプログラムの内容は、ファイルを読み込み、読み込んだ値をクラスのメンバーに入れたあと、すべてのオブジェクトのあるメンバーにアクセスする、という内容。読み込んだファイルのサイズは約4.5MBのテキスト。

$ time ./WinGdc.exe 

real    0m16.760s
user    0m0.031s
sys     0m0.031s

$ time ./WinDmd.exe 

real    0m16.299s
user    0m0.031s
sys     0m0.031s

$ time ./LinGdc.exe 

real    1m57.082s
user    0m45.484s
sys     1m11.202s

WinGdc.exeはWindowsgdc(MinGWgdc)でコンパイルしたもの。WinDmd.exeはWindowsdmdコンパイルしたもので、LinGdc.exeはCygwingdcを用いてコンパイルしたもの。約8倍速度が違うことがわかる。恐ろしや。。