前回のJava と比べて Clojure が 3 倍以上遅いというのは何かの間違いではないかと思って確かめたら,やっぱり間違いだった件 の続きです. 今回は,前回普通に書いた並列化なし Clojure プログラムを並列化させます. 普通に書いた並列化なし Clojure プログラムのコードは前の記事を参照してください. 「普通に書いた Clojure プログラム」の並列化この記事では,pmapReducersの 2 つの方法を使って「普通に書いた Clojure プログラム」を並列化し, 並列化前と並列化後の実行時間を比較し,どちらが速いかを確認します. また,コードの変更点を確認することで,並列化によりどれだけコードが複雑化するかを議論します.pmap による並列化「普通に書いた Clojure プログラム」からの変更点は次の 2 つです:map をpmap に置き換えた(1
0x00. Clojureがいけてる件について ここ数ヶ月でClojureをどんどん実戦投入してみているが、その成果は素晴らしいの一言に尽きる。Javaでは考えられなかったほどスマートかつ柔軟にデータ処理が可能であり、「あれ、こんなに短い記述でできちゃうのか!」と驚かされることが多い。そんなわけで、何でもかんでもJavaで片付けてきた筆者はここにきてClojureにかなり惚れ込んでおり、電子書籍やらウェブサイトやらで本格的に情報収集を進めているのだが… 0x01. Clojureの並列プログラミング 現時点では、Clojureを実戦投入したのは、ちょっとした処理に使うツール的なものだけである。理由は単に、筆者がまだClojureの初心者だからだ。しかしそろそろメインの仕事であるサーバアプリケーションやウェブアプリケーションでも使いたくてウズウズしてきており、そのような視点からさらに調査を進

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

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

1リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く