On Lisp
On Lisp 後注よりGabriel, Richard P. Performance and Standardization. Proceedings of the First International Workshop on Lisp Evolution and Standardization, 1988, p.60
ある処理系で triangle を試していて, Gabriel は次のことを発見した:「プログラマが C コンパイラにレジスタ割り当ての指示を与えたときと比べても, C 版の反復による実装よりも Lisp 版のほうが 17% も高速だった.」彼の論文では Lisp で実装したほうが C より高速になるプログラムが他にもいくつか挙がっており, なかには 43% も高速になったものもある.
Lisp:よくある誤解
Lisp:よくある誤解 「Lispは高速なプログラムが書けない?」 よりLispでもほぼC並に速いコードを 書くことは可能です。
C並に速いLispコードは見た目も安全性もC並になる
ベンチマーク
こういうベンチマークもあるそうでLet Over Lambda
Lisp の速度について、LET OVER LAMBDA Edition 1.0 では6章で扱っていました。Lisp は速い。本当に速いのだ。
この章では、Lisp が他のあらゆるプログラミング言語よりも速くなり得ること、実は C のような低水準プログラミング言語は、マクロがかけているため、Lisp に対して性能面で不利なことを明らかするつもりである。参考までに LOL の6章の目次はこんな感じ。
- 第6章
- Lisp は速い
- マクロが Lisp を速くする
- ディスアセンブラと仲良くなる
- ポインタスコープ
- tlist とコンスプール
- ソーティングネットワーク
- コンパイラの書き方とベンチマーク
参考
- Lisp:よくある誤解
- LISPは速い - 翡翠はコンピュータに卵を生むか
- ろーてく - ブログ Common Lisp 早い!?
- :: Lispって意外と速い? | 世界の半分~まじかる☆ちきんれーす ::
- LISP ベースの「世界最速」 (と作者が信じる) ウェブサーバ - スラッシュドット・ジャパン
追記
まさか shiro さんのところに valvallow という文字が現れるようなことが起こるとは・・・。すげーな Common Lisp ・・・。
追記2
How to make Lisp go faster than C
という論文が面白いです。
簡単な画像処理をCとCommon Lispで書いて速度を比べるというものですが、
CLの速度の劇的な変化が笑えます。
インタプリタで実行 -> Cの2300倍遅い
コンパイルして実行 -> Cの60倍遅い
型宣言と最適化を付ける -> Cと同等の速度(一部に関してはCより速い)
追記3
LET OVER LAMBDA Edition 1.0 P.75 より(CL-PPCRE は、Common Lisp で書かれた正規表現ライブラリ)
第1に、CL-PPCRE は高速である。本当に高速だ。品質の良いネイティブコードコンパイラでコンパイルすれば、ほとんどの正規表現に対するベンチマークが、CL-PPCRE の方が Perl よりも2倍か、もっと高速だという結果をしばしば示す。そして、Perl の正規表現エンジンは、非 Lisp 正規表現エンジンの中では最高速なものの1つだ。それは C で書かれ、高度に最適化されたエンジンなのである。
0 件のコメント:
コメントを投稿