タグ

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

  • サイズによるmalloc(3)の負荷の違い - sdyuki-devel

    ネットワークIOのバッファリングを行うコードを書く必要があったので、確保するメモリのサイズによってmalloc(3)にかかる時間がどれくらい違うのか調べてみた。 環境は: Linux vcore.local 2.6.22.9-vcore16 #1 SMP Sun Oct 14 22:13:32 JST 2007 x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 5000+ GNU/Linuxmalloc() → free() を 1,000,000回繰り返し、かかった時間を計測した結果: $ ./a.out 8 16 32 64 128 256 512 1024 8192 16384 32768 bytes: seconds 8: 0.042706 16: 0.042608 32: 0.042998 64: 0.042607 128: 0.09

    サイズによるmalloc(3)の負荷の違い - sdyuki-devel
  • sdyuki-devel

    イベント駆動型のプログラムでは、エラー処理の記述が面倒になることがある。これを何とかしたい。 例えば、keyからidを引き、idからdata引くプログラムを書きたいとする。 手続き型で書くと以下のようになる: def doit(key) id = get_id(key) data = get_data(id) return data end ここで、get_id と get_data は長くブロックするので、イベント駆動型にしたいとする。 そうするとプログラムの正常系の処理は↓このようになる。 def doit(key, &callback) get_id(key) {|id| get_data(id) {|data| callback.call(data) } } # futureを返すのは良いアイディア end ここまでが前提条件。 このプログラムのエラー処理を愚直に書くと、↓このよう

    sdyuki-devel
  • 1