Rubyについて Part47at TECH
Rubyについて Part47 - 暇つぶし2ch39:デフォルトの名無しさん
12/01/28 08:31:26.29
>>37
だから思考に至る経緯も書いてあんだろ

>>38
なかったはず

40:デフォルトの名無しさん
12/01/28 09:32:22.15
1.9から$LOADED_FEATURESの中身が絶対パスになってるけど、
配列だからrequire時の引数との関係は完全には分からないな。
(拡張子まで明示してrequireされたかどうか、とか)


41:デフォルトの名無しさん
12/01/28 10:05:02.75
>>36
おーそんなのがあるんですね。ありがとうございます。
でも1.8では使えないみたい、ショボーンです。

>>37
>少なくともPOSIXな環境にはそんなシステムコールは
>無いような気がする

POSIXにはなくてもLinuxとFreeBSDにはありますよー
URLリンク(linuxjm.sourceforge.jp)
URLリンク(www.unix.com)

IO.copy_streamは内部でsendfile(2)を呼び出してくれてるのだろうか。そうだとうれしいなあ。

42:デフォルトの名無しさん
12/01/28 10:23:49.94
IO.copy_streamの実体rb_io_s_copy_stream関数から
copy_stream_body
nogvl_copy_stream_func
以下、USE_SENDFILEが定義されているとき
nogvl_copy_stream_sendfile
simple_sendfile
sendfile
という呼び出しの流れ。

USE_SENDFILEは、linuxでは定義されてるけど、BSD系は
/* This runs on FreeBSD8.1 r30210, but sendfiles blocks its execution
* without cpuset -l 0.
*/
というコメントがあって#ifdef outされてる。

以上 io.c より。


43:デフォルトの名無しさん
12/01/28 11:53:24.32
まあ環境依存だし
システムに特化したもので最適化したいならRubyなんて使わずにCで書いたほうがいいよ


44:デフォルトの名無しさん
12/01/28 12:00:13.57
うむ、たとえ1バイトでもバッファリングしたら死んじゃうという人はぜひCで

45:デフォルトの名無しさん
12/01/28 13:04:56.45
顔を紅潮させながら崇史はそう叫んだ

46:デフォルトの名無しさん
12/01/29 03:40:10.97
>>42
何を言わんとしているのか分かりにくいけど、
・IO.copy_streamは、Linuxではsendfile()を呼び出している
・残念ながらBSDではなんかの事情によりsendfile()は使われてない
ということ?
もっと分かりやすい説明して。



最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch