« Swifty 0.03 を公開しました | メイン | MySQL の高速化プチBK » 2007年09月19日 システムコールの最適化 今朝、会社で「最速のファイルコピー」についての話題が出ていました。そこで、ちょっと気になって、read(2) の呼出のオーバーヘッドがどの程度あるのか、ベンチマークをとってみました。 グラフは、それぞれの環境で、10MBのファイルを1,024回読み込むのにかかった時間を示しています。ファイルの内容は当然メインメモリにキャッシュされているので、実際は、カーネル内のバッ... > このページを見る
最終更新時間:
2007年09月19日14時00分
みんなのブックマーク 人気(0) 新着
- 10MBのファイルを1,024回読み込むのにかかった時間のレポート。Mac OS Xは遅いみたい。linux のシステムコールのオーバーヘッドは、だいたい memcpy(1KB〜2KB) の所要時間と同等とあるけど、それを目安とどうして言えるんだろう
- __attribute__((aligned(16))) はコピペミスかな。
- データを見る限り「とりあえずL1にあわせとけ」でいい気がします.
- read先を繰り返し流用してるからキャッシュからの書き出しが発生せず(多分)、そのせいでキャッシュ容量に敏感になってるので、バッファ容量の指標のベンチとしては無意味な予感。
- 「read(2) や write(2) 等の、カーネルとの間でメモリコピーを行うシステムコールを呼び出す際において、そのブロックサイズは2次キャッシュの50%をひとつの目安とすべき」勉強勉強
- L2 の量が目安か。なるほど。
- static char buf[1048576] __attribute__((aligned(16)));
- どっちが2次キャッシュに載ってる場合だとか共有キャッシュだとどうなるとか投げやりな議論でごめんなさい ><








