タグ

performanceとClojureに関するHashのブックマーク (3)

  • Clojure プログラムを並列化したら遅くなったり複雑になったりするというのは何かの間違いではないかと思って確かめたら,やっぱり間違いだった件 - tnoda-clojure

    前回の Java と比べて Clojure が 3 倍以上遅いというのは何かの間違いではないかと思って確かめたら,やっぱり間違いだった件 の続きです. 今回は,前回普通に書いた並列化なし Clojure プログラムを並列化させます. 普通に書いた並列化なし Clojure プログラムのコードは前の記事を参照してください. 「普通に書いた Clojure プログラム」の並列化この記事では, pmapReducersの 2 つの方法を使って「普通に書いた Clojure プログラム」を並列化し, 並列化前と並列化後の実行時間を比較し,どちらが速いかを確認します. また,コードの変更点を確認することで,並列化によりどれだけコードが複雑化するかを議論します. pmap による並列化「普通に書いた Clojure プログラム」からの変更点は次の 2 つです: mappmap に置き換えた(1

    Clojure プログラムを並列化したら遅くなったり複雑になったりするというのは何かの間違いではないかと思って確かめたら,やっぱり間違いだった件 - tnoda-clojure
  • ClojureのSTMは使い物にならない

    0x00. Clojureがいけてる件について ここ数ヶ月でClojureをどんどん実戦投入してみているが、その成果は素晴らしいの一言に尽きる。Javaでは考えられなかったほどスマートかつ柔軟にデータ処理が可能であり、「あれ、こんなに短い記述でできちゃうのか!」と驚かされることが多い。そんなわけで、何でもかんでもJavaで片付けてきた筆者はここにきてClojureにかなり惚れ込んでおり、電子書籍やらウェブサイトやらで格的に情報収集を進めているのだが… 0x01. Clojureの並列プログラミング 現時点では、Clojureを実戦投入したのは、ちょっとした処理に使うツール的なものだけである。理由は単に、筆者がまだClojureの初心者だからだ。しかしそろそろメインの仕事であるサーバアプリケーションやウェブアプリケーションでも使いたくてウズウズしてきており、そのような視点からさらに調査を進

    ClojureのSTMは使い物にならない
  • 多次元配列の見えないリフレクションに注意 - tnoda-clojure

    速い Clojure の大敵といえば Java リフレクションです.*warn-on-reflection* を true にしておくと,REPL でリフレクションを警告してくれるので便利です. user> (def alist (java.util.ArrayList.)) #'user/alist user> (.add alist :foo) Reflection warning, NO_SOURCE_FILE:1 - call to add can't be resolved. ← これ true しかし,全てのリフレクションを検出して知らせてくれるわけではありません. *warn-on-reflection* を true にして次の defn foo を実行してみます. user> (set! *warn-on-reflection* true) true user> (def

    多次元配列の見えないリフレクションに注意 - tnoda-clojure
    Hash
    Hash 2013/07/07
    多次元配列では*warn-on-reflection*でも検出されないこっそりリフレクションが使われているという話. > 多次元配列を操作するときには,おとなしく全ての次元について型ヒントをつけたほうが良さそうです
  • 1