アカウント名:
パスワード:
理論的にはその通りですが、現実的にはそうは言えないと思います。C言語でそのまま記述した場合よりも、LISPで記述した方が高速になったのであれば、そのLISP処理系の最適化の性能は、比較対象となるC言語で記述されたWebサーバーのプログラマの最適化能力よりも上である、と言えます。
ただし、その場合であっても、より優秀なC言語のプログラマーにC言語でWebサーバーを記述してもらえれば、LISP版を上回ることは理論上は可能です。なぜならLISP版も最終的にはC言語で実装されていますから。
まあ、タレコミ記事は「LISPでもがんばればCを超える速度も無理じゃない」という雰囲気なので、速度を出すのはCよりも大変なんでしょう。それだと John Fremlin 氏 の優秀さはたたえられてもLISPが勝てたとは言えない気がします。
> 理論的にはその通りですが、理論的には、処理系の最適化性能にかかわらずC言語ではできない最適化をLisp(など)ならできる可能性もありますが、現実はそんなに甘くないようです [hatena.ne.jp]。理論的にはx86より優れているはずのプロセッサアーキテクチャが(Intel自身のIA-64さえも)ことごとく敗れ去っているようなものですね。
なるほどなるほど。ものすごく簡単に言えば「高級言語ほど機能が抽象化されているから最適化できる」という訳ですね。
> 理論的にはx86より優れているはずのプロセッサアーキテクチャが(Intel自身のIA-64さえも)ことごとく敗れ去っているようなものですね。こいつは単純に研究時間と研究開発費の差じゃないすか? インテルだってIA64よりもX86に多大な開発費を投じていたかと。でも考えてみればx86のオーバーヘッドってx86から内部Riscコードへの変換だけですから案外たいしたこと無いのかも。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy
C に勝てる? (スコア:1)
Re: (スコア:2)
理論的にはその通りですが、現実的にはそうは言えないと思います。
C言語でそのまま記述した場合よりも、LISPで記述した方が高速になったのであれば、
そのLISP処理系の最適化の性能は、比較対象となるC言語で記述されたWebサーバーのプログラマの最適化能力よりも上である、と言えます。
ただし、その場合であっても、より優秀なC言語のプログラマーにC言語でWebサーバーを記述してもらえれば、
LISP版を上回ることは理論上は可能です。なぜならLISP版も最終的にはC言語で実装されていますから。
まあ、タレコミ記事は「LISPでもがんばればCを超える速度も無理じゃない」という雰囲気なので、速度を出すのはCよりも大変なんでしょう。
それだと John Fremlin 氏 の優秀さはたたえられてもLISPが勝てたとは言えない気がします。
Re: (スコア:0)
> 理論的にはその通りですが、
理論的には、処理系の最適化性能にかかわらずC言語ではできない最適化をLisp(など)ならできる可能性もありますが、現実はそんなに甘くないようです [hatena.ne.jp]。
理論的にはx86より優れているはずのプロセッサアーキテクチャが(Intel自身のIA-64さえも)ことごとく敗れ去っているようなものですね。
Re:C に勝てる? (スコア:2)
なるほどなるほど。ものすごく簡単に言えば「高級言語ほど機能が抽象化されているから最適化できる」という訳ですね。
> 理論的にはx86より優れているはずのプロセッサアーキテクチャが(Intel自身のIA-64さえも)ことごとく敗れ去っているようなものですね。
こいつは単純に研究時間と研究開発費の差じゃないすか? インテルだってIA64よりもX86に多大な開発費を投じていたかと。
でも考えてみればx86のオーバーヘッドってx86から内部Riscコードへの変換だけですから案外たいしたこと無いのかも。
Re: (スコア:0)
今は開発サイクルの谷間にいるのでぱっとしませんが、AMDのx86もなかなかの高性能ですよ。
Re: (スコア:0)
現時点でのx86の一番の難点は、命令境界が先頭から逐次的に走査しないとわからないため、命令の切り出し→並列実行にはコストがかかるという点です。
もっとも命令の切り出し自体はデータフロー的依存性はないので、原理的には並列度の高いものです。
命令セットアーキテクチャの審美的な美しさと回路的な効率や単純さは一致しないことのほうが多いですね。(個人的経験です。前者は対称性を重んじるあまりに無理な設計になりがちで、後者はfree parallelism but costly wiringでしょうか)