Index: [Article Count Order] [Thread]

Date: Tue, 27 Aug 2002 13:07:11 +0900
From: keita yamaguchi <keita@kyomu.info>
Subject: [webrickja:43] Re: accelerator
To: webrickja@notwork.org
Message-Id: <20020827130711.011063b7.keita@kyomu.info>
In-Reply-To: <20020826.145124.123575921.gotoyuzo@kotetsu.does.notwork.org>
References: <20020826042519.0745e599.keita@kyomu.info>	<20020826.145124.123575921.gotoyuzo@kotetsu.does.notwork.org>
X-Mail-Count: 00043

keitaです。

> > * timeout
> すばらしい。
> # 0.1.0 は typo があるようです。末尾にパッチつけます。

ご指摘ありがとうございました。
修正版を0.1.1にしました。

http://kyomu.info/obj/comp/archive/ruby-timeoutx-0.1.1.tar.gz

> ええと、これは WEBrick 側で何もしなくても利用者側で require す
> ればよいということですね。

そうです。
require するだけなのでユーザが速度が気になる場合のみ
各自timeouxを使うようにすればいいんだと思います。

ただ、必ずwebrickのあとにロードする必要がありますねえ。


> > * zero copy
> # … FreeBSD のは Linux と API が微妙に違いますが、HP-UX はど
> # うなんでしょ。

これ困ってます。
sendfileには移植性がないとされているようで、
各OSでほとんど共通性がないみたいです。

* Solaris(sendfilev)
http://www.kegel.com/sendfilev.txt

* HP-UX
http://docs.hp.com/hpux/onlinedocs/B2355-90682/00/01/165-con.html

こんな状況なので、各OSを持っている人にインターフェイスを書いて
もらうしかないような気がします。


> 速さとはちょっと違うんですが、大きなファイルを転送する場合に、
> HTTPResponse がバッファをまるごと抱えないといけないのをなんと
> かしたいとは思っていました。

元々sendfile化したきっかけが
100Mbのファイルを転送してみてマズいなぁと思ったからでした。

> API としては、body に IO をセットしたら、そこから少しずつ読み
> 取って送信するという感じにするつもりだったんですが、まさに 
> sendfile はぴったりですねえ。webrick-accelarator もそのほうが
> 書きやすそうだし。
> 
> うーん、どうしましょ。

windowsでzero copyする方法がみつからないので(Apacheを参考にすればいい?)
APIとしてはこの方法を採られるのがいいと思います。
acceleratorはどのみちメソッドの再定義でゴマかしてますので、
どれだけ仕様変更があっても追従できると思いますし。

今後他にも色々手を加えようかなと考えてますので、
webrick本体は自由に発展してもらって
こっちは徹底的にメソッド再定義で追従していこうと思っています。

---
Name: 山口 慶太 (keita yamaguchi)
Mail: keita@kyomu.info
URL : http://kyomu.info/