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はWindows用gdc(MinGW用gdc)でコンパイルしたもの。WinDmd.exeはWindows用dmdでコンパイルしたもので、LinGdc.exeはCygwin用gdcを用いてコンパイルしたもの。約8倍速度が違うことがわかる。恐ろしや。。