タグ

ブックマーク / macks.hatenadiary.org (2)

  • Ruby 1.9 の新機能を調べてみた - diary of a madman

    1.9.0 のリリースも近いということで、Changes in Ruby 1.9 を参考にしながら Ruby 1.9 trunk (r14828) で遊んでみた。 まあ、ほとんどは上のサイトに書いてあるとおりなんだけど、「おっ」と思った点やその他で気付いた点を以下に列挙。(既に書かれている内容はほぼ省略) Changes in Ruby 1.9 のページに書いてあるけど現状に即していない点。 Object#__send__ は、けっきょく可視性に関わらず全てのメソッドを呼べるようになった。(__send や __send! は廃止) NameError は、けっきょく StandardError のサブクラスに戻った。 Hash#each と Hash#each_pair は同じ動作になった。 他にもあるかもしれないけど、とりあえず気付いたのは以上。 RubyGems が標準で組み込まれる

    Ruby 1.9 の新機能を調べてみた - diary of a madman
    nobyuki
    nobyuki 2012/10/24
  • Ruby と FD_SETSIZE 問題 - diary of a madman

    FD_SETSIZE 問題とは、1 つのプロセスで大量のファイルを同時に open するなどしてファイルデスクリプタの値が FD_SETSIZE *1の値を超える(fd >= FD_SETSIZE になる)と標準の fd_set 型で取り扱えなくなり、select(2) が正しく実行できなくなる、という問題。有名でわりと古典的な問題だが、今でもいろんなところに埋まっている。 たとえば、同時に大量のネットワークコネクションを取り扱いたい大規模サーバではこれが問題になる。実際にこれを踏むと、範囲外アクセスを起こして Segmentation fault で落ちることが多い。 なお、select(2) そのものの実装は(現代的な OS のカーネルであれば) FD_SETSIZE には依存しておらず、呼び出し側(ユーザランド)の問題である。 また、一般的な解決方法として、子プロセスを作ってそちらに

    Ruby と FD_SETSIZE 問題 - diary of a madman
  • 1