タグ

システムコールに関するthaimのブックマーク (3)

  • mmapのほうがreadより速いという迷信について - kazuhoのメモ置き場

    @ITに以下のような記事が出て、 今回からしばらくの間は、まったく逆の例、つまり使うとプログラムの処理性能が上がるというシステムコールを紹介していく。システムコールを呼ぶ回数は少ない方が処理性能は高くなるという原則は変わらないが、呼び出しておくと処理性能が向上するシステムコールというものが存在するのだ。こうしたシステムコールを使わないでいることは、とてももったいない。 今回紹介するシステムコールは「mmap(2)」だ。ここでは詳しく仕組みを解説しないが、mmap(2)は、プログラムの処理性能に必ず良い影響を与える。 やはりあった? 高速化に効くシステムコール (1/2):知ってトクするシステムコール(3) - @IT それを真に受けたのか、「Go言語でmmapシステムコールを使ったファイル読み込みの高速化検討とC言語のコンパイラの話 - ryochack.blog」のようなブログエントリも

    mmapのほうがreadより速いという迷信について - kazuhoのメモ置き場
  • SystemTap で特定のプロセスが発行したシステムコールを表示する - ablog

    スクリプトを用意する targeted.stp probe syscall.* { if ( pid() == target() ) printf("Syscall: %s\n",name) } 実行してみる モニタリングするプロセスを起動する $ ping localhost モニタリングしたいプロセスのPIDを調べる。 $ ps -elf|grep [p]ing 4 S oracle 3198 3169 0 75 0 - 493 416062 00:44 pts/0 00:00:00 ping localhost SystemTap を使ってモニタリングしてみる。 # stap ./targeted.stp -x 3198 Syscall: gettimeofday Syscall: gettimeofday Syscall: sendmsg Syscall: recvmsg Sysc

    SystemTap で特定のプロセスが発行したシステムコールを表示する - ablog
  • 高速化に効くシステムコールが犠牲にするもの

    前回、mmap(2)というシステムコールを使って、ファイルコピーの速度を上げる方法を解説しました。このシステムコールは大きな問題を起こすこともないので、使いやすく、実際に多くの開発者が利用しています。今回は、プログラムが使用した物理メモリサイズやページフォールトの回数、コンテキストスイッチの回数などを調べて、mmap(2)の性格を分析していきます(編集部) 前回とは違う側面からmmap(2)を調べる 前回、ファイルをコピーするためのシステムコールの一種である「mmap(2)」を紹介した。このシステムコールを使えば、「read(2)」や「write(3)」といったシステムコールを使うよりも高速に動作するファイルコピープログラムを作れる。処理にかかった平均時間を比較したところ、mmap(2)を利用したプログラムは、read(2)/write(2)を使ったプログラムの4〜5倍高速に動作していた。

    高速化に効くシステムコールが犠牲にするもの
  • 1