[sendfile(2)][速い]

読んでいて、

Standaloneサーバが速いと言われる理由としてsendfile(2)を使っている

http://mattn.kaoriya.net/software/lang/perl/20091001222631.htm

でなんで、sendfile(2)だと早いのかがわかんなかったので調べたメモ。

sendfile() は、あるファイル・ディスクリプタから別のファイル・ディスクリプタへのデータのコピーを行う。このコピーはカーネル内で行われるので、 sendfile() は、 read(2) と write(2) を組み合わせるよりも効率がよい。 read(2) や write(2) ではユーザ空間との間でデータの転送が必要となるからである。 

http://www.linux.or.jp/JM/html/LDP_man-pages/man2/sendfile.2.html

ユーザー空間じゃなくて、カーネル空間で行われるからよりこうそくなのね。