夜中からの Haskell 談義

Haskell 遅いんじゃないかって言ったら @tanakh 先生に教育的指導をして頂けました
26
前へ 1 2 ・・ 6 次へ
Hideyuki Tanaka @tanakh

Haskellのコードは理由なく遅くならないし、遅いなら理由があるので取り除けば速くなる。長年の経験上GHCにはそれぐらいの信頼はおけます。

2011-04-11 04:04:25
くいなちゃん @b2

Lispェ・・・ FAV @ponkotuy 前Pythonistaで、吐くバイナリの命令数最も短いと、Lispをガチで勧めてた人が居たw

2011-04-11 04:06:43
SKS rep @repeatedly

Data.ListってGHCでの標準ライブラリだった気がするんだけど,そんなに激遅なんだろうか

2011-04-11 04:08:21
くいなちゃん @b2

結局、ネイティブコンパイルしたなら生成されるのは機械語なんだから、機械語にフィットする言語のほうが速いのは当然な気がする。 そういった意味で、C言語から離れていくほど遅くなるんじゃ・・・。

2011-04-11 04:08:21
Hideyuki Tanaka @tanakh

@repeatedly Haskell2010の標準ライブラリですね。これが激遅というより、そもそもリストをC++の配列の置き換えとして使うと激遅になるというのはわかりますよね…?

2011-04-11 04:09:23
普通のC++使い、銀天すばる @SubaruG

最適化の幅は機械語に近いほうが狭くなりますにゃ。 RT @a_mute: 結局、ネイティブコンパイルしたなら生成されるのは機械語なんだから、機械語にフィットする言語のほうが速いのは当然な気がする。 そういった意味で、C言語から離れていくほど遅くなるんじゃ・・・。

2011-04-11 04:09:31
おしょー@実際モチベーションがない @manga_osyo

午前4時過ぎに Haskell が議論されてる TL 怖い。

2011-04-11 04:09:44
ふじた @kester44

なるほどなー RT @SubaruG: 最適化の幅は機械語に近いほうが狭くなりますにゃ。 RT @a_mute: 結局、ネイティブコンパイルしたなら生成されるのは機械語なんだから、機械語にフィットする言語のほうが速いのは当然な気がする。 そういった意味で、C言語から離れていくほど

2011-04-11 04:10:22
くいなちゃん @b2

なるほど・・・最適化をコンパイラ任せにしたら、確かにそうなりますね FAV @SubaruG 最適化の幅は機械語に近いほうが狭くなりますにゃ。

2011-04-11 04:10:42
Hideyuki Tanaka @tanakh

ただまあ、Haskellでも抽象性と効率を両立させるのは未だに難しいわけなので、まだコンパイル技術は発展する余地はありますね。そこが究極の目標です。SuperCompilationがその間をある程度埋めてくれると思うのだけど、実用化はいつごろになるだろう。

2011-04-11 04:11:33
SKS rep @repeatedly

gcc「インラインアセンブラも最適化してやんよ!」

2011-04-11 04:12:51
ぷりん大王・鰹節大臣(兼任) @phoenixstarhiro

@tanakh よく使われている言語ならどれでも遅くなるなら理由があるし、取り除けば速くなる気が。。。問題は理由がどれだけ探しやすいかと、取り除きやすいか、では?

2011-04-11 04:14:27
Hideyuki Tanaka @tanakh

@phoenixstarhiro 遅くなる、の前にC++程度の速度と比べて、という言葉を補ってもらえると…。

2011-04-11 04:15:06
SKS rep @repeatedly

まぁでもFortranの配列のメモリレイアウトは素晴らしい(使ったことない

2011-04-11 04:15:48
Hideyuki Tanaka @tanakh

@shelarcy おお、あれから進展があったんでしょうか?

2011-04-11 04:18:24
Hideyuki Tanaka @tanakh

ICFP2011に投稿されたのか。

2011-04-11 04:18:51
shelarcy(しぇらーしぃ) @shelarcy

@tanakh 改良した結果が ICFP 2011 の論文として投稿されてます。

2011-04-11 04:19:05
めるぽん.c @melponn

Haskell さんはやればできる子だということが分かった。Haskell の基本操作がリストだから、基本がvectorなC++と比べて遅いと感じてしまうってことがあるってことなのかな。

2011-04-11 04:19:10
Hideyuki Tanaka @tanakh

@shelarcy なるほどー。GHCに取り込まれる計画とかはあるんでしょうかね?

2011-04-11 04:19:29
くいなちゃん @b2

でも・・・まだ一般的に、C/C++ が最速とされている現状。

2011-04-11 04:20:34
Hideyuki Tanaka @tanakh

今Haskellで配列操作するならvectorパッケージ一択です http://hackage.haskell.org/package/vector

2011-04-11 04:20:37
めるぽん.c @melponn

どんなアルゴリズムで書いても全部同一のバイナリを吐き出してくれるようなコンパイラが欲しいです!

2011-04-11 04:21:06
shelarcy(しぇらーしぃ) @shelarcy

@tanakh GitHub の方で見れますが、実験的に GHC に上に実装しようとしている branch がありますね。まだ実装が全然ですけれど。 https://github.com/ghc/ghc/tree/supercompiler

2011-04-11 04:21:23
前へ 1 2 ・・ 6 次へ