«前の日記(2007-02-20) 最新 次の日記(2007-02-22)» 編集

Matzにっき


2007-02-21 [長年日記]

_ [Ruby] Ruby Implementations Shootout: Ruby vs Yarv vs JRuby vs Gardens Point Ruby .NET vs Rubinius vs Cardina

最近出揃ってきたRubyの各種実装の比較。 当然ながらYARVが性能・実装レベル双方で圧勝。

ふふふっ、圧倒的じゃないか、我がYARVはっ

まあ、やったのは私じゃなくて、ささだくんなんだけど。 また、今後のJRuby/XRuby/Ruby.NETの追い上げも予想されるので、 この「天下」がいつまで維持できるかどうかもわからない。 継続的な精進が必要そうだ。

_ [Ruby] taw's blog: Making Ruby faster

小さな変更でどれくらいRuby 1.8を早くできるかという話。

具体的には

  • rb_call0(switchからもっとも頻繁なケースのifへ) - 効果あるの?
  • st_num_tableの分離(間接呼び出しの削除)
  • Fixnum比較の最適化(無駄なFIX2LONG()の削除) - 本家に取り込み

これで3%くらい速くなったとのこと。3%だとかなり誤差っぽいんだけど。

なお、st_num_tableをJudyで置き換える続編も出ている。 こちらは最大13%改善。

_ 10 Linux commands you've never used

あまり使われないLinuxコマンド。

  • pgrep
  • pstree
  • bc
  • split
  • nl
  • mkfifo
  • ldd
  • col
  • xmlwf
  • lsof

個人的にはgprep(とpkill)、bc、ldd、lsofくらいは割とよく使うけどな。 nlは「cat -n」を使うと思う。

_ [言語] Radium Software The Problem with C++

Technology Review: C++ は多くのプログラマから批評され,かつ憎まれておりながらも,同時に非常に広く用いられているという事実に関して,あなたでしたらどのような説明を行いますか?

Bjarne Stroustrup: ざっくり答えると,言語には次の2種類しか存在しないということです――皆が不満を顕にするものか,あるいは,誰も使いもしないものか,です。

「よく使われる言語に不満を述べる人は多い」のは事実だが、 「よく使われるが不満を述べる人はそれほどでもない」という 第三の言語もありそうな気がする。

たとえばRubyとか(笑

_ [言語] Lisp

Lispは宇宙の創造に使われた言語だった(?)。

くすくす。

_ [言語] バイナリフォーマット"BISON" - 概念実証が発表に

Binary JSON。ほんとにうれしいのだろうか。 誤差のない浮動小数点はうれしいだろうけど。

そういえばRubyのMarshalはバイナリだけど、 浮動小数点数についてはテキストだなあ。

_ [Ruby] String#scrape

scrAPIをStringクラスに組み込んじゃったら、という話。

XMLっぽいテキストから データを抽出するのがとても楽。少なくともそう見える。 こういうAPIは大好きだ。

scrAPIやXPath/XQueryみたいのがあるとXMLもいいか、 という気になるよね。もっとも、YAML/JSONとEnumerableメソッドの方が 便利なことも多いけど。

_ [言語] Scheme AA

個人的には爆笑した。

本日のツッコミ(全3件) [ツッコミを入れる]
_ 向井 (2007-03-01 15:21)

私は、irb(とかほかの対話環境をもつ言語)の存在により bc はまったく使わなくなってしまいました。dcの方がまだ使うかもしれません。

_ ささだ (2007-03-01 18:56)

基本的にYARVで高速化した部分を、どれくらい速くなるのか調べるために作ったベンチマークなので、YARVが速いに決まってるんですけどねぇ。<br><br>誰かまともなベンチマーク機能作ってくれないものか。

_ 斎藤ただし (2007-03-02 07:36)

ささださんが想定される「まともさ」がどんなものか、とても興味があります。

お名前:
E-mail:
コメント:
[]

«前の日記(2007-02-20) 最新 次の日記(2007-02-22)» 編集

track feed Matzにっき Creative Commons License This work is licensed under a Creative Commons License.