掲示板お問い合わせランダムジャンプ



この広告は30日以上更新がないブログに表示されております。 新しい記事を書くことで広告を消すことができます。

別のblogとか

2013年06月09日
tak(20, 10, 0)関数ベンチマーク
tak(20, 10, 0) ベンチマーク結果
Tak 関数という再帰関数があって、ベンチマークによく使われるのだそうです。そこで、私のLinux環境で試してみました。結果はグラフにまとめてあります(なお、対数目盛での表示です)。
動作環境は OpenSUSE 12.3 x64 @ Core i5 750 で、bash の time コマンドの実時間の値を取得しています。

Haskellの結果が意外と遅いですが、tarai 関数が遅延評価で速くなるのに対し tak 関数はそうではないという特徴によるものです。GHC, interpreted とあるのは runghc で実行したものですが、1分以上かかるという「らしからぬ」結果。runhugs にいたっては2分以上でした。

Ruby 2.0 がスクリプト言語にしては意外に速く、最初は何かの間違いかと思いました。あとで調べたら引数の入力ミスを見つけたのですが、それとは関係なしに速かったようです。

スクリプト言語の中でも軽い部類に属する Lua ですが、標準実装では Ruby 1.9 とどっこいどっこいの約10秒、でも LuaJIT を使うと1秒弱と、もうコンパイラ言語に迫る勢いになっています。

Java が遅いと言われていたのも今は昔、最近のJavaVMは速いみたいで、Tak.class を java Tak で起動するともはや C 言語に引けをとらない速さで動いてしまいます。逆に gcj でネイティブコンパイルすると遅くなるという本末転倒な結果に。

Perl では約1分かかっていますが、こいつに限ってはメモリをバカ食いするんです。tarai(14, 7, 0) を計算させたらスワップアウトの嵐の果てにインタプリタが落ちてしまいました。

Bash でも tak(20, 10, 0) を計算するスクリプトを書いてみましたが、20分以上かかるというもはや冗談みたいなレベル。

Go言語は処理系の使い方がわからずに苦労しました……以前使ったことがあるのに忘れてます。

やろうと思ったけど断念した処理系もあります。
Open Watcom Fortran コンパイラも計測しようとしましたが、名前に F77 と付いていて、再帰関数が書けなさそう(再帰関数はF90でサポートされた)なので断念。
GNU Common Lisp は処理系のインストール以前に configure スクリプトがフリーズしてしまうため断念。
CMU Common Lisp は非常識な構造(解凍すると単一のディレクトリでないもの出力される)の Tarball で配布されていた上にインストールの方法がわからず断念。
F95 はインストールの方法がわからず断念。ぶっちゃけると ./configure && make && sudo make install でインストール出来ないのは苦手です。
Clojureもインストールの仕方がわかりませんでした。
GDC はビルド途中に Linux をインストールしているパーティションが満杯になってしまったため断念。GCCGO や GNU Pascal のインストールも断念しました。
[ 投稿者:芙蓉美晴 (MihailJP) at 00:20 | コーディング | コメント(0) | トラックバック(0) ]

2013年06月01日
5月の読書記録
先月は1日1冊以上のペースだけどラノベが多い気が。

ちなみに Fii bucuros.Google先生に訳してもらったら
幸せになる。
……。

私は外国語知識は色々あるんですけどアリアと違って喋れないんですよ!(但し英語ならある程度喋れる)

続きを読む ...
 
[ 投稿者:芙蓉美晴 (MihailJP) at 16:42 | 読書記録 | コメント(0) | トラックバック(0) ]