2005-05-13

_ [work] 発表

まあがんばろ。

_ [url][comp] codefest2005

むちゃくちゃ行きたいけれど、研究会の日程に思いっきりぶつかってる……。 2日目を抜ければ行けないことはないが……。

_ [url] TypeKey認証

codefestのページにちょろっと書いてあった中央認証システムをメモ。 みんな同じような事考えるのね……。

今の仕事でCAS をちょっとだけ弄っているけれど、 対して TypeKey はセッション情報の検証をDSA署名を使うことによって サービス側で出来るのか。タイムスタンプ情報も入ってるからそれぞれの サービスでセッションタイムアウトも側サービスで決められる (ただ、逆に言うと自分でやんないといけないのだけど)。 この手のシステムは調べたら多分一杯出てくるんだろうな……。

_ [comp][ruby] direct IO.read ベンチ

ふと IOの落し穴 の話を思い出して、ベンチマークをとってみた。取り合えずコードこんなの。

require 'benchmark'
$time    = 100000
$bufsize = 1024*4

Benchmark.bmbm { |b|
null = open("/dev/zero")
b.report("normal read") {
 $time.times { buf1 = null.read($bufsize) }
}
buf2 = ""
b.report("normal read (predef)") {
 $time.times { buf2 = null.read($bufsize) }
}
buf3 = ""
b.report("direct read") {
 $time.times { null.read($bufsize, buf3) }
}
}

これを手元のノートPC(PentiumM 1G)で動かすと、

Rehearsal --------------------------------------------------------
normal read            0.770000   0.040000   0.810000 (  0.826490)
normal read (predef)   0.740000   0.050000   0.790000 (  0.799479)
direct read            0.300000   0.030000   0.330000 (  0.325670)
----------------------------------------------- total: 1.930000sec

                        user     system      total        real
normal read            0.810000   0.040000   0.850000 (  0.859199)
normal read (predef)   0.780000   0.050000   0.830000 (  0.838252)
direct read            0.300000   0.030000   0.330000 (  0.329116)

デスクトップ(Pentium III (Coppermine) 1G)だと

Rehearsal --------------------------------------------------------
normal read            2.980000   0.240000   3.220000 (  3.263426)
normal read (predef)   3.150000   0.250000   3.400000 (  3.424056)
direct read            0.690000   0.160000   0.850000 (  0.859237)
----------------------------------------------- total: 7.470000sec

                        user     system      total        real
normal read            3.220000   0.300000   3.520000 (  3.548013)
normal read (predef)   3.050000   0.260000   3.310000 (  3.345767)
direct read            0.680000   0.140000   0.820000 (  0.829792)

そんなにとてつもなく早くはならないな。 使った方が良さそうではあるが。

関係ないけど PentiumM 早いね……

_ [prog][ruby] gonzui CGI モード

説明を用意。 アーカイブ作った方が良いのだろうけれど、取り合えずファイルが転がしてあるだけ。

……ああもう。このへたれデザインなCSSいい加減なんとかしたい。 この悲惨なサイト編集方法も!

コメント (4)

KENZ
発表とかいろいろ、ほどほどにがんばって!
sugi
ありがとうございます。拙いながら一応完了……
なかだ
normal readとnormal read (predef)の二つは、IOとしてはやってることはまったく同じです。 ブロックローカル変数を$times回生成するかしないかというだけなので。
sugi
ご指摘の通りです。実は既存のスクリプトの性能改善のために調べていたのでこんなテストコードになったんですが、その話が書いてないので全然分からんですな……