タグ

performanceとjavaに関するHashのブックマーク (4)

  • 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は使い物にならない
  • Javaのパフォーマンスについての9つの誤信

    JVMはプロファイリングを利用してコードの最適化を行います。対象は頻繁に利用されるコードパスのみですが,徹底的に行うことで大きな効果を上げています。JITコンパイルされたコードに関しては,現在では多くの場面において (その割合も増えつつあります) C++の実行速度を凌駕しています。 このような事実にも関わらずJavaが今でも低速なプラットフォームとして認識されているのは,おそらくは初期バージョンのJavaプラットフォームでの経験が,歴史的な負のバイアスとして働いているためでしょう。 早まった結論を出す前に,客観的な見地に立って,最新のパフォーマンス結果を評価するようにお勧めします。 2. Java コードの1行にはそれ自体で意味がある 次の短いコード行を考えてみてください: MyObject obj = new MyObject(); Java開発者ならば誰でも分かるように,このコードはオ

    Javaのパフォーマンスについての9つの誤信
  • Rubyの文字列の連結速度を測定してGruffで表示してみた - suer のブログ

    String と StringBuffer の文字列連結速度のテスト - すえひろがりっっっっ!と同様小ネタ。 社会人になって1年たちますが、仕事で「素人かよ!」って思うコードをよく見かけます。 そのトップ10に入るのが「Javaで+= で文字列を連結していてパフォーマンスがすこぶる悪い」コードです。 これをやってた人は、いまだに += で文字列を連結しているコードをよこしてきます。 どうにかならないもんだろうか。 ところで、Ruby でも String の連結は重いのだよね?とふと思ったので += と << で結合した場合の速度を測定してみました。 楽しいRubyによると Ruby でも += で結合するとインスタンスを生成するらしい。 ということは += と << では性能に差が出るはず。 せっかくRubyなのでGruffを試してみます。 バージョン Mac OS X 10.6.3 C

    Rubyの文字列の連結速度を測定してGruffで表示してみた - suer のブログ
  • 1