トップページ > プログラム > 2016年12月09日 > T45DPCHQ0

書き込み順位&時間帯一覧

13 位/238 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000010000000002014



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん (ワッチョイ 1bc1-UxIg)
C言語なら俺に聞け 137 [無断転載禁止]©2ch.net

書き込みレス一覧

C言語なら俺に聞け 137 [無断転載禁止]©2ch.net
928 :デフォルトの名無しさん (ワッチョイ 1bc1-UxIg)[]:2016/12/09(金) 11:12:10.89 ID:T45DPCHQ0
Cで書いたプログラムを実行した時に実際にそのプログラムがコールしている
システムコールの回数を知りたいのですが、みなさんはどの様な方法を使っていますか?
dtruss?とかdtrace?とかのコマンドを使う方法もあるみたいなのですが自分の環境でなぜかうまくいかなかったので…
システムコールが遅いと言われる所以を確認するために実験をしたいので教えてください。

環境はMacOS X sierraです
C言語なら俺に聞け 137 [無断転載禁止]©2ch.net
933 :デフォルトの名無しさん (ワッチョイ 1bc1-UxIg)[]:2016/12/09(金) 21:04:53.79 ID:T45DPCHQ0
>>932
つまり、システムコールでもバッファを自前で用意してそこへ入れる様にすればコンテキストスイッチが少なくて済むってことですよね。

1バイトずつシステムコールした場合
write 5350
read 5351

512バイトのバッファを用意した場合
write 611
read 612

実験してみたのですが単純に512倍にならないのなぜなんだろう…
C言語なら俺に聞け 137 [無断転載禁止]©2ch.net
935 :デフォルトの名無しさん (ワッチョイ 1bc1-UxIg)[]:2016/12/09(金) 21:57:07.96 ID:T45DPCHQ0
>>934
1バイトずつ呼んだ場合と512バイトまでバッファリングした場合だと単純に呼ぶ回数が512分の1になりそうだと思いました。
C言語なら俺に聞け 137 [無断転載禁止]©2ch.net
940 :デフォルトの名無しさん (ワッチョイ 1bc1-UxIg)[]:2016/12/09(金) 23:58:22.80 ID:T45DPCHQ0
>>938
http://ideone.com/88miey
こんな感じです。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。